diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 7d29563ae9..9d8cc52437 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -20,15 +20,38 @@ on: push: branches: - 'master' - # pull_request: - # branches: - # - 'master' + pull_request: + branches: + - 'master' jobs: + paths-filter: + name: Filter + runs-on: ubuntu-latest + + outputs: + docker: ${{ steps.filter.outputs.docker }} + + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4.1.1 + - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # pin@v2.11.1 + id: filter + with: + filters: | + docker: + - .github/workflows/docker.yaml + - docker/** + - docker-compose.yml + - docker.dev.env + - Dockerfile + + # Build the docker image build: runs-on: ubuntu-latest + needs: paths-filter + if: needs.paths-filter.outputs.docker == 'true' || github.event_name == 'release' || github.event_name == 'push' permissions: contents: read packages: write @@ -59,7 +82,6 @@ jobs: docker-compose run inventree-dev-server invoke update docker-compose run inventree-dev-server invoke setup-dev docker-compose up -d - docker-compose run inventree-dev-server pip install setuptools==68.1.2 docker-compose run inventree-dev-server invoke wait - name: Check Data Directory # The following file structure should have been created by the docker image diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py index 9dee3bd637..e23914b191 100644 --- a/InvenTree/InvenTree/api_version.py +++ b/InvenTree/InvenTree/api_version.py @@ -2,11 +2,21 @@ # InvenTree API version -INVENTREE_API_VERSION = 151 +INVENTREE_API_VERSION = 154 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v154 -> 2023-11-21 : https://github.com/inventree/InvenTree/pull/5944 + - Adds "responsible" field to the ProjectCode table + +v153 -> 2023-11-21 : https://github.com/inventree/InvenTree/pull/5956 + - Adds override_min and override_max fields to part pricing API + +v152 -> 2023-11-20 : https://github.com/inventree/InvenTree/pull/5949 + - Adds barcode support for manufacturerpart model + - Adds API endpoint for adding parts to purchase order using barcode scan + v151 -> 2023-11-13 : https://github.com/inventree/InvenTree/pull/5906 - Allow user list API to be filtered by user active status - Allow owner list API to be filtered by user active status diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py index facb8b3bf7..ff4488f683 100644 --- a/InvenTree/InvenTree/helpers.py +++ b/InvenTree/InvenTree/helpers.py @@ -349,7 +349,7 @@ def MakeBarcode(cls_name, object_pk: int, object_data=None, **kwargs): object_data['id'] = object_pk data[cls_name] = object_data - return json.dumps(data, sort_keys=True) + return str(json.dumps(data, sort_keys=True)) def GetExportFormats(): diff --git a/InvenTree/InvenTree/helpers_model.py b/InvenTree/InvenTree/helpers_model.py index e63419a16f..5dc37cf723 100644 --- a/InvenTree/InvenTree/helpers_model.py +++ b/InvenTree/InvenTree/helpers_model.py @@ -228,7 +228,11 @@ def getModelsWithMixin(mixin_class) -> list: """ from django.contrib.contenttypes.models import ContentType - db_models = [x.model_class() for x in ContentType.objects.all() if x is not None] + try: + db_models = [x.model_class() for x in ContentType.objects.all() if x is not None] + except (OperationalError, ProgrammingError): + # Database is likely not yet ready + db_models = [] return [x for x in db_models if x is not None and issubclass(x, mixin_class)] diff --git a/InvenTree/InvenTree/models.py b/InvenTree/InvenTree/models.py index a7217bb8e0..a4b147ff08 100644 --- a/InvenTree/InvenTree/models.py +++ b/InvenTree/InvenTree/models.py @@ -969,6 +969,22 @@ class InvenTreeBarcodeMixin(models.Model): **kwargs ) + def format_matched_response(self): + """Format a standard response for a matched barcode.""" + + data = { + 'pk': self.pk, + } + + if hasattr(self, 'get_api_url'): + api_url = self.get_api_url() + data['api_url'] = f"{api_url}{self.pk}/" + + if hasattr(self, 'get_absolute_url'): + data['web_url'] = self.get_absolute_url() + + return data + @property def barcode(self): """Format a minimal barcode string (e.g. for label printing)""" diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py index 6dbcb85bbf..efd0df90e8 100644 --- a/InvenTree/InvenTree/tasks.py +++ b/InvenTree/InvenTree/tasks.py @@ -553,7 +553,7 @@ def update_exchange_rates(force: bool = False): # Record successful task execution record_task_success('update_exchange_rates') - except OperationalError: + except (AppRegistryNotReady, OperationalError, ProgrammingError): logger.warning("Could not update exchange rates - database not ready") except Exception as e: # pragma: no cover logger.exception("Error updating exchange rates: %s", str(type(e))) diff --git a/InvenTree/common/migrations/0022_projectcode_responsible.py b/InvenTree/common/migrations/0022_projectcode_responsible.py new file mode 100644 index 0000000000..a40a420f87 --- /dev/null +++ b/InvenTree/common/migrations/0022_projectcode_responsible.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.23 on 2023-11-20 08:04 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0010_alter_apitoken_key'), + ('common', '0021_auto_20230805_1748'), + ] + + operations = [ + migrations.AddField( + model_name='projectcode', + name='responsible', + field=models.ForeignKey(blank=True, help_text='User or group responsible for this project', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='project_codes', to='users.owner', verbose_name='Responsible'), + ), + ] diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index e825d21ec9..918387a2d6 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -51,6 +51,7 @@ import InvenTree.tasks import InvenTree.validators import order.validators import report.helpers +import users.models from plugin import registry logger = logging.getLogger('inventree') @@ -126,6 +127,15 @@ class ProjectCode(InvenTree.models.MetadataMixin, models.Model): help_text=_('Project description'), ) + responsible = models.ForeignKey( + users.models.Owner, + on_delete=models.SET_NULL, + blank=True, null=True, + verbose_name=_('Responsible'), + help_text=_('User or group responsible for this project'), + related_name='project_codes', + ) + class SettingsKeyType(TypedDict, total=False): """Type definitions for a SettingsKeyType diff --git a/InvenTree/common/serializers.py b/InvenTree/common/serializers.py index c791f39f83..06a6d226e9 100644 --- a/InvenTree/common/serializers.py +++ b/InvenTree/common/serializers.py @@ -11,6 +11,7 @@ from InvenTree.helpers import get_objectreference from InvenTree.helpers_model import construct_absolute_url from InvenTree.serializers import (InvenTreeImageSerializerField, InvenTreeModelSerializer) +from users.serializers import OwnerSerializer class SettingsValueField(serializers.Field): @@ -281,9 +282,13 @@ class ProjectCodeSerializer(InvenTreeModelSerializer): fields = [ 'pk', 'code', - 'description' + 'description', + 'responsible', + 'responsible_detail', ] + responsible_detail = OwnerSerializer(source='responsible', read_only=True) + class FlagSerializer(serializers.Serializer): """Serializer for feature flags.""" diff --git a/InvenTree/company/migrations/0068_auto_20231120_1108.py b/InvenTree/company/migrations/0068_auto_20231120_1108.py new file mode 100644 index 0000000000..6a4cba6e29 --- /dev/null +++ b/InvenTree/company/migrations/0068_auto_20231120_1108.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.23 on 2023-11-20 11:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('company', '0067_alter_supplierpricebreak_price_currency'), + ] + + operations = [ + migrations.AddField( + model_name='manufacturerpart', + name='barcode_data', + field=models.CharField(blank=True, help_text='Third party barcode data', max_length=500, verbose_name='Barcode Data'), + ), + migrations.AddField( + model_name='manufacturerpart', + name='barcode_hash', + field=models.CharField(blank=True, help_text='Unique hash of barcode data', max_length=128, verbose_name='Barcode Hash'), + ), + ] diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py index 465df22125..693a35c570 100644 --- a/InvenTree/company/models.py +++ b/InvenTree/company/models.py @@ -387,7 +387,7 @@ class Address(models.Model): help_text=_('Link to address information (external)')) -class ManufacturerPart(MetadataMixin, models.Model): +class ManufacturerPart(MetadataMixin, InvenTreeBarcodeMixin, models.Model): """Represents a unique part as provided by a Manufacturer Each ManufacturerPart is identified by a MPN (Manufacturer Part Number) Each ManufacturerPart is also linked to a Part object. A Part may be available from multiple manufacturers. Attributes: diff --git a/InvenTree/company/serializers.py b/InvenTree/company/serializers.py index 860818f8dd..6d5911749b 100644 --- a/InvenTree/company/serializers.py +++ b/InvenTree/company/serializers.py @@ -223,6 +223,7 @@ class ManufacturerPartSerializer(InvenTreeTagModelSerializer): 'description', 'MPN', 'link', + 'barcode_hash', 'tags', ] diff --git a/InvenTree/locale/bg/LC_MESSAGES/django.po b/InvenTree/locale/bg/LC_MESSAGES/django.po index 6fae10b78c..66b1adf1fe 100644 --- a/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -54,10 +54,10 @@ msgstr "Въведи дата" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Въведеният домейн на електронната поща msgid "Registration is disabled." msgstr "Регистрацията е деактивирана." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Въведена е недопустима стойност" @@ -264,10 +264,10 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -295,13 +295,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Потребител" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -710,7 +710,7 @@ msgstr "Върнат" msgid "In Progress" msgstr "Изпълнява се" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "Място в склада" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Места в склада" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po index 6b86d0e499..d33f733b35 100644 --- a/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -54,10 +54,10 @@ msgstr "Zadejte datum" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Zadaná e-mailová doména není povolena." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" @@ -264,10 +264,10 @@ msgstr "Příloha" msgid "Select file to attach" msgstr "Vyberte soubor k přiložení" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Vyberte soubor k přiložení" msgid "Link" msgstr "Odkaz" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Odkaz na externí URL" @@ -295,13 +295,13 @@ msgstr "Komentář" msgid "File comment" msgstr "Komentář k souboru" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Uživatel" @@ -342,9 +342,9 @@ msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem" msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Název" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Hash čárového kódu" msgid "Unique hash of barcode data" msgstr "Jedinečný hash dat čárového kódu" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Nalezen existující čárový kód" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Chyba serveru" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Musí být platné číslo" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Měna" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Vyberte měnu z dostupných možností" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Název souboru" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Neplatná hodnota" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Datový soubor" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Vyberte datový soubor k nahrání" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Nepodporovaný typ souboru" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Soubor je příliš velký" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "V souboru nebyly nalezeny žádné sloupce" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "V souboru nebyly nalezeny žádné řádky s daty" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Nebyly zadány žádné řádky s daty" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Nebyly zadány žádné sloupce s daty" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Chybí povinný sloupec: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicitní sloupec: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL souboru vzdáleného obrázku" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Stahování obrázků ze vzdálené URL není povoleno" @@ -710,7 +710,7 @@ msgstr "Vráceno" msgid "In Progress" msgstr "Zpracovává se" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Sestavení musí být zrušeno před odstraněním" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Vytvořit objednávku" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Vytvořené objednávky" @@ -991,9 +991,9 @@ msgstr "Neplatná volba nadřazeného sestavení" msgid "Build Order Reference" msgstr "Referenční číslo objednávky" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Cílové datum dokončení" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Datum dokončení" @@ -1171,7 +1171,7 @@ msgstr "Uživatel, který vydal tento příkaz k sestavení" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Příkaz k sestavení {build} byl dokončen" msgid "A build order has been completed" msgstr "Příkaz k sestavení byl dokončen" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Nebyl specifikováno žádný výstup sestavení" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Výstup sestavení je již dokončen" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Výstup sestavení neodpovídá příkazu sestavení" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "Množství nemůže být větší než výstupní množství" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlavní díl je označen jako sledovatelný" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Množství musí být 1 pro zřetězený sklad" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Možné zakoupit" @@ -2390,7 +2390,7 @@ msgstr "Možné zakoupit" msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Prodejné" @@ -2399,7 +2399,7 @@ msgstr "Prodejné" msgid "Parts are salable by default" msgstr "Díly jsou prodejné ve výchozím nastavení" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Sledovatelné" msgid "Parts are trackable by default" msgstr "Díly jsou sledovatelné ve výchozím nastavení" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Formát data" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Cena" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Id" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "Obrazek" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Společnost" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Hodnota parametru" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "Stáhnout obrázek z URL" msgid "Delete image" msgstr "Smazat obrázek" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Dodavatelský sklad" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Zakoupené objednávky" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "Činnost nebyla specifikována" msgid "No matching action found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Pro data čárového kódu nebyla nalezena shoda" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Pro data čárového kódu byla nalezena shoda" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Odstranit" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "Domovská stránka" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Potvrdit" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "Oprávnění" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Nastavení oprávnění" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Skupina" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Zobrazit" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Oprávnění k zobrazení položek" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Oprávnění přidat položky" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Změnit" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Oprávnění k úpravě položek" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Oprávnění k odstranění položek" diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po index 7c81a40e58..21d8252683 100644 --- a/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -54,10 +54,10 @@ msgstr "Angiv dato" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Det angivne e-mail domæne er ikke godkendt." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" @@ -264,10 +264,10 @@ msgstr "Vedhæftning" msgid "Select file to attach" msgstr "Vælg fil, der skal vedhæftes" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Vælg fil, der skal vedhæftes" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Link til ekstern URL" @@ -295,13 +295,13 @@ msgstr "Kommentar" msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Bruger" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Navn" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Stregkode Hash" msgid "Unique hash of barcode data" msgstr "Unik hash af stregkode data" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Eksisterende stregkode fundet" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Serverfejl" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Skal være et gyldigt tal" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Filnavn" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Ugyldig værdi" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Vælg datafilen til upload" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Filtype ikke understøttet" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Ingen kolonner fundet i fil" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Ingen datarækker fundet i fil" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Ingen data-rækker angivet" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Ingen data-kolonner angivet" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrævet kolonne: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikeret kolonne: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL til ekstern billedfil" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Download af billeder fra ekstern URL er ikke aktiveret" @@ -710,7 +710,7 @@ msgstr "Returneret" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Produktionsordre" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Produktionsordrer" @@ -991,9 +991,9 @@ msgstr "Ugyldigt valg for overordnet produktion" msgid "Build Order Reference" msgstr "Produktionsordre reference" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Batch Kode" msgid "Batch code for this build output" msgstr "Batch kode til dette produktions output" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Projekteret afslutningsdato" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Dato for afslutning" @@ -1171,7 +1171,7 @@ msgstr "Bruger som udstedte denne byggeordre" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Bygningsordre {build} er fuldført" msgid "A build order has been completed" msgstr "En byggeordre er fuldført" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index b825d2f981..f64cbd82a1 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -54,10 +54,10 @@ msgstr "Datum eingeben" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." msgid "Registration is disabled." msgstr "Registrierung ist deaktiviert." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -264,10 +264,10 @@ msgstr "Anhang" msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Datei zum Anhängen auswählen" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Link zu einer externen URL" @@ -295,13 +295,13 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Benutzer" @@ -342,9 +342,9 @@ msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Name" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,118 +432,119 @@ msgstr "Barcode-Hash" msgid "Unique hash of barcode data" msgstr "Eindeutiger Hash der Barcode-Daten" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Bestehender Barcode gefunden" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Währung" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Währung aus verfügbaren Optionen auswählen" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." -msgstr "" +msgstr "Sie haben keine Berechtigung, diese Benutzerrolle zu ändern." -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" -msgstr "" +msgstr "Nur Superuser können neue Benutzer erstellen" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" -msgstr "" +msgstr "Willkommen bei {current_site.name}" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." -msgstr "" +msgstr "Ihr Konto wurde erstellt.\n\n" +"Bitte verwenden Sie die Passwort-Zurücksetzen-Funktion, um Zugriff zu erhalten (https://{domain})." -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Dateiname" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Ungültiger Wert" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Datendatei" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Neue Datei zum Hochladen auswählen" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Nicht unterstütztes Dateiformat" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Datei ist zu groß" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Keine Spalten in der Datei gefunden" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Keine Datensätze in der Datei gefunden" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Keine Zeilen ausgewählt" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Keine Spalten angegeben" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Erforderliche Spalte '{name}' fehlt" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Doppelte Spalte: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL der Remote-Bilddatei" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" #: InvenTree/settings.py:819 msgid "Bulgarian" -msgstr "" +msgstr "Bulgarisch" #: InvenTree/settings.py:820 msgid "Czech" @@ -710,7 +711,7 @@ msgstr "Zurückgegeben" msgid "In Progress" msgstr "In Bearbeitung" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +918,14 @@ msgstr "Über InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +976,7 @@ msgstr "Bauauftrag" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Bauaufträge" @@ -991,9 +992,9 @@ msgstr "Ungültige Wahl für übergeordneten Bauauftrag" msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1023,11 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1136,7 @@ msgstr "Losnummer" msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1151,7 @@ msgstr "geplantes Fertigstellungsdatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -1171,7 +1172,7 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1230,39 @@ msgstr "Bauauftrag {build} wurde fertiggestellt" msgid "A build order has been completed" msgstr "Ein Bauauftrag wurde fertiggestellt" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "kein Endprodukt angegeben" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Endprodukt bereits hergstellt" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "Menge kann nicht größer als die Ausgangsmenge sein" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Objekt bauen" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1304,36 @@ msgstr "Objekt bauen" msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Erforderliche Menge für Auftrag" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1350,19 @@ msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" @@ -1416,7 +1417,7 @@ msgstr "Seriennummern automatisch zuweisen" msgid "Automatically allocate required items with matching serial numbers" msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" @@ -1465,8 +1466,8 @@ msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1557,7 +1558,7 @@ msgstr "Bauauftrag hat unvollständige Aufbauten" #: build/serializers.py:718 msgid "Build Line" -msgstr "" +msgstr "Bauauftragsposition" #: build/serializers.py:728 msgid "Build output" @@ -1569,7 +1570,7 @@ msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" #: build/serializers.py:772 msgid "Build Line Item" -msgstr "" +msgstr "Bauauftragspositionsartikel" #: build/serializers.py:786 msgid "bom_item.part must point to the same part as the build order" @@ -1758,7 +1759,7 @@ msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1796,8 @@ msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1847,7 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Ziel-Lager" @@ -1980,7 +1981,7 @@ msgstr "Zuordnung abgeschlossen" #: build/templates/build/detail.html:423 msgid "All lines have been fully allocated" -msgstr "" +msgstr "Alle Zeilen wurden vollständig zugewiesen" #: build/templates/build/index.html:18 part/templates/part/detail.html:319 msgid "New Build Order" @@ -2099,11 +2100,11 @@ msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erforde #: common/models.py:1076 msgid "Pending migrations" -msgstr "" +msgstr "Ausstehende Migrationen" #: common/models.py:1077 msgid "Number of pending database migrations" -msgstr "" +msgstr "Anzahl der ausstehenden Datenbankmigrationen" #: common/models.py:1083 msgid "Server Instance Name" @@ -2159,7 +2160,7 @@ msgstr "Währungsaktualisierungsintervall" #: common/models.py:1127 msgid "How often to update exchange rates (set to zero to disable)" -msgstr "" +msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivieren setzen)" #: common/models.py:1129 common/models.py:1193 common/models.py:1211 #: common/models.py:1218 common/models.py:1229 common/models.py:1240 @@ -2170,11 +2171,11 @@ msgstr "Tage" #: common/models.py:1137 msgid "Currency Update Plugin" -msgstr "" +msgstr "Währungs-Aktualisierungs-Plugin" #: common/models.py:1138 msgid "Currency update plugin to use" -msgstr "" +msgstr "Zu verwendendes Währungs-Aktualisierungs-Plugin" #: common/models.py:1144 msgid "Download from URL" @@ -2270,7 +2271,7 @@ msgstr "Bacode-Feature verwenden" #: common/models.py:1249 msgid "Enable barcode scanner support in the web interface" -msgstr "" +msgstr "Barcode-Scanner Unterstützung im Webinterface aktivieren" #: common/models.py:1255 msgid "Barcode Input Delay" @@ -2352,7 +2353,7 @@ msgstr "Kategorie-Parametervorlage kopieren" msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2363,7 @@ msgstr "Vorlage" msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2374,7 @@ msgstr "Baugruppe" msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponente" @@ -2382,7 +2383,7 @@ msgstr "Komponente" msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Kaufbar" @@ -2390,7 +2391,7 @@ msgstr "Kaufbar" msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Verkäuflich" @@ -2399,7 +2400,7 @@ msgstr "Verkäuflich" msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2411,7 @@ msgstr "Nachverfolgbar" msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2959,566 @@ msgstr "Löschintervall für Berichte" msgid "Stocktake reports will be deleted after specified number of days" msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "Vollständige Namen von Benutzern anzeigen" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "Ausstehende Versandaufträge anzeigen" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Zeige Neuigkeiten" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Neuigkeiten auf der Startseite anzeigen" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Standard-Etikettendrucker" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Zulieferteile durchsuchen" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Bauaufträge durchsuchen" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Bauaufträge in der Suchvorschau anzeigen" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Suche nach Rücksendungen" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "Rücksendungen in der Suchvorschau anzeigen" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "Inaktive Rücksendungen ausblenden" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Regex Suche" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "Ganzes Wort suchen" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventur" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Zeichenkettenlänge in Tabellen" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Maximale Länge der Zeichenketten, die in Tabellenansichten angezeigt werden" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "Standardvorlage für Teilebeschriftung" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" -msgstr "" +msgstr "Die Teil-Etikettenvorlage, die automatisch ausgewählt werden soll" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "Lagerartikel-Standardvorlage" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "Die Lagerartikel-Etikettenvorlage soll automatisch ausgewählt werden" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" -msgstr "" +msgstr "Standardetikettenvorlage für Lagerstandort" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" -msgstr "" +msgstr "Die Lagerstandort-Etikettenvorlage, die automatisch ausgewählt werden soll" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" -msgstr "" +msgstr "Fehlerberichte empfangen" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" -msgstr "" +msgstr "Benachrichtigungen bei Systemfehlern erhalten" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Preis" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Aktiv" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Token" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Host" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Body" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "ID" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Veröffentlicht" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Autor" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Zusammenfassung" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Gelesen" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "Wurde diese Nachricht gelesen?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3528,31 @@ msgstr "Wurde diese Nachricht gelesen?" msgid "Image" msgstr "Bild" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "Bilddatei" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "Einheitsname muss eine gültige Kennung sein" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "Einheitsname" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "Optionales Einheitssymbol" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definition" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "Einheitsdefinition" @@ -3556,19 +3565,28 @@ msgstr "Neue {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "Eine neue Bestellung wurde erstellt und Ihnen zugewiesen" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "{verbose_name} storniert" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "Eine Bestellung, die Ihnen zugewiesen war, wurde storniert" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Artikel erhalten" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Artikel wurden aus einer Bestellung erhalten" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "Artikel wurden aus einer Rücksendung erhalten" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Fehler in Plugin aufgetreten" @@ -3685,7 +3703,7 @@ msgstr "Standard-Währung für diese Firma" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Firma" @@ -3850,7 +3868,7 @@ msgid "Parameter value" msgstr "Parameterwert" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3894,9 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3937,7 @@ msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3947,11 @@ msgstr "Zuliefererbeschreibung des Teils" msgid "Note" msgstr "Notiz" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" @@ -3963,7 +3981,7 @@ msgstr "Packmenge" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Gesamtmenge, die in einer einzelnen Packung geliefert wird. Für Einzelstücke leer lassen." -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "Vielfache" @@ -4041,8 +4059,8 @@ msgstr "Bild von URL herunterladen" msgid "Delete image" msgstr "Bild löschen" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4157,7 @@ msgstr "Zulieferer-Bestand" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Bestellungen" @@ -4162,7 +4180,7 @@ msgstr "Neue Bestellung" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Aufträge" @@ -4187,7 +4205,7 @@ msgstr "Zugeordneter Bestand" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "Rücksendeaufträge" @@ -4403,7 +4421,7 @@ msgstr "Teilverfügbarkeit aktualisieren" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Lagerartikel" @@ -4517,11 +4535,11 @@ msgstr "QR-Code" msgid "Total Price" msgstr "Gesamtpreis" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "Keine passende Bestellung gefunden" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4553,7 @@ msgstr "Keine passende Bestellung gefunden" msgid "Purchase Order" msgstr "Bestellung" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4562,7 @@ msgstr "Bestellung" msgid "Return Order" msgstr "Rücksendeauftrag" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Unbekannt" @@ -4572,7 +4590,7 @@ msgstr "Auftragsbeschreibung (optional)" msgid "Select project code for this order" msgstr "Projektcode für diesen Auftrag auswählen" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Link auf externe Seite" @@ -4596,11 +4614,11 @@ msgstr "Ansprechpartner für diesen Auftrag" msgid "Company address for this order" msgstr "Firmenadresse für diesen Auftrag" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Bestellungs-Status" @@ -4621,15 +4639,15 @@ msgstr "Zulieferer Bestellreferenz" msgid "received by" msgstr "Empfangen von" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" @@ -4637,99 +4655,99 @@ msgstr "Datum an dem der Auftrag fertigstellt wurde" msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "Versand von" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" -msgstr "" +msgstr "Positionsbeschreibung (optional)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Kontext" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Zusätzlicher Kontext für diese Zeile" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Stückpreis" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "gelöscht" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Bestellung" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4757,185 @@ msgstr "Zuliefererteil" msgid "Received" msgstr "Empfangen" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:1223 +#: order/models.py:1239 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:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Ein virtuelles Teil kann nicht einem Auftrag zugeordnet werden" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Versendete Menge" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Versanddatum" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Lieferdatum" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "Versanddatum" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Kontrolliert von" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Sendung" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Sendungsnummer" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Sendungsverfolgungsnummer" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Informationen zur Sendungsverfolgung" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Rechnungsnummer" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Referenznummer für zugehörige Rechnung" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "Sendung wurde bereits versandt" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "Sendung hat keine zugewiesene Lagerartikel" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "Auftrag gehört nicht zu Sendung" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "Sendung gehört nicht zu Auftrag" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Position" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Position" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" -msgstr "" +msgstr "Rücksendungsreferenz" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" -msgstr "" +msgstr "Firma von der die Artikel zurückgeschickt werden" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" -msgstr "" +msgstr "Status der Rücksendung" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" -msgstr "" +msgstr "Nur serialisierte Artikel können einer Rücksendung zugeordnet werden" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" -msgstr "" +msgstr "Artikel zur Rücksendung auswählen" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "Empfangsdatum" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" -msgstr "" +msgstr "Das Datum des Empfangs dieses Rücksendeartikels" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -4983,7 +5001,7 @@ msgstr "Barcode" #: order/serializers.py:539 msgid "Scanned barcode" -msgstr "" +msgstr "Gescannter Barcode" #: order/serializers.py:555 msgid "Barcode is already in use" @@ -5186,7 +5204,7 @@ msgstr "Gesamtkosten konnten nicht berechnet werden" #: order/templates/order/order_base.html:318 msgid "Purchase Order QR Code" -msgstr "" +msgstr "Bestellung QR Code" #: order/templates/order/order_base.html:330 msgid "Link Barcode to Purchase Order" @@ -5319,7 +5337,7 @@ msgstr "Position hinzufügen" #: order/templates/order/return_order_detail.html:28 #: order/templates/order/return_order_detail.html:29 msgid "Receive Line Items" -msgstr "" +msgstr "Erhaltene Positionen" #: order/templates/order/purchase_order_detail.html:50 #: order/templates/order/return_order_detail.html:45 @@ -5346,11 +5364,11 @@ msgstr "Notizen zur Bestellung" #: order/templates/order/return_order_base.html:18 #: order/templates/order/sales_order_base.html:18 msgid "Customer logo thumbnail" -msgstr "" +msgstr "Kundenlogo Miniaturansicht" #: order/templates/order/return_order_base.html:60 msgid "Print return order report" -msgstr "" +msgstr "Rücksendungsbericht drucken" #: order/templates/order/return_order_base.html:64 #: order/templates/order/sales_order_base.html:64 @@ -5379,15 +5397,15 @@ msgstr "Gesamtkosten" #: order/templates/order/return_order_base.html:263 msgid "Return Order QR Code" -msgstr "" +msgstr "Rücksendung QR-Code" #: order/templates/order/return_order_base.html:275 msgid "Link Barcode to Return Order" -msgstr "" +msgstr "Barcode mit Rücksendung verknüpfen" #: order/templates/order/return_order_sidebar.html:5 msgid "Order Details" -msgstr "" +msgstr "Bestelldetails" #: order/templates/order/sales_order_base.html:60 msgid "Print sales order report" @@ -5396,7 +5414,7 @@ msgstr "Verkaufsauftragsbericht drucken" #: order/templates/order/sales_order_base.html:88 #: order/templates/order/sales_order_base.html:89 msgid "Ship Items" -msgstr "" +msgstr "Versandartikel" #: order/templates/order/sales_order_base.html:92 #: templates/js/translated/sales_order.js:484 @@ -5415,11 +5433,11 @@ msgstr "Abgeschlossene Sendungen" #: order/templates/order/sales_order_base.html:312 msgid "Sales Order QR Code" -msgstr "" +msgstr "Verkaufsauftrag QR-Code" #: order/templates/order/sales_order_base.html:324 msgid "Link Barcode to Sales Order" -msgstr "" +msgstr "Barcode mit Bestellung verknüpfen" #: order/templates/order/sales_order_detail.html:18 msgid "Sales Order Items" @@ -5461,12 +5479,12 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "Teil-ID" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Name des Teils" @@ -5475,20 +5493,20 @@ msgstr "Name des Teils" msgid "Part Description" msgstr "Beschreibung des Teils" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Version" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Schlüsselwörter" @@ -5509,11 +5527,11 @@ msgstr "Standard-Standortnummer" msgid "Default Supplier ID" msgstr "Standard-Lieferantennummer" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante von" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimaler Bestand" @@ -5539,11 +5557,11 @@ msgstr "Benutzt in" msgid "Building" msgstr "Im Bau" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Minimale Kosten" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Maximale Kosten" @@ -5567,7 +5585,7 @@ msgstr "Pfad zur Kategorie" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Teile" @@ -5583,7 +5601,7 @@ msgstr "Stücklisten-Position ID" msgid "Parent IPN" msgstr "Übergeordnete IPN" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "Teil IPN" @@ -5625,7 +5643,7 @@ msgstr "Gesamte Stückliste validieren" msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Standard-Lagerort" @@ -5643,14 +5661,14 @@ msgstr "Verfügbarer Bestand" msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Teil-Kategorien" @@ -5712,294 +5730,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits." -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategorie" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Maßeinheit für diesen Teil" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:997 +#: part/models.py:965 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:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "Währung für die Berechnung der Preise im Cache" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "Minimale Stücklisten Kosten" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "Minimale Kosten für Teile" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "Maximale Stücklisten Kosten" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "Maximale Kosten für Teile" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "Minimale Einkaufskosten" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "Minimale historische Kaufkosten" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "Maximale Einkaufskosten" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "Maximale historische Einkaufskosten" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "Minimaler interner Preis" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "Minimale Kosten basierend auf den internen Staffelpreisen" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "Maximaler interner Preis" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "Maximale Kosten basierend auf internen Preisstaffeln" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "Minimaler Lieferantenpreis" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "Mindestpreis für Teil von externen Lieferanten" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "Maximaler Lieferantenpreis" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "Maximaler Preis für Teil von externen Lieferanten" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "Minimale Variantenkosten" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "Berechnete minimale Kosten für Variantenteile" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "Maximale Variantenkosten" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "Berechnete maximale Kosten für Variantenteile" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "Berechnete Mindestkosten" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "Berechnete Maximalkosten" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "Mindestverkaufspreis" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "Mindestverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "Maximaler Verkaufspreis" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "Maximalverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "Mindestverkaufskosten" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "Minimaler historischer Verkaufspreis" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "Maximale Verkaufskosten" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "Maximaler historischer Verkaufspreis" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "Teil für die Inventur" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "Stückzahl" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6029,318 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" msgid "Date" msgstr "Datum" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "Datum der Inventur" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Zusätzliche Notizen" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "Benutzer, der diese Inventur durchgeführt hat" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "Mindestbestandswert" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "Geschätzter Mindestwert des vorhandenen Bestands" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "Maximaler Bestandswert" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "Geschätzter Maximalwert des vorhandenen Bestands" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Bericht" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "Inventur-Berichtsdatei (intern generiert)" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Anzahl der Teile" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "Benutzer, der diesen Inventurbericht angefordert hat" -#: part/models.py:3239 +#: part/models.py:3207 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:3256 +#: part/models.py:3224 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:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Benötigt" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:3295 +#: part/models.py:3263 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:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:3301 +#: part/models.py:3269 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:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "Checkbox-Parameter können keine Einheiten haben" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "Auswahl muss einzigartig sein" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "Parameter-Beschreibung" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Checkbox" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "Ist dieser Parameter eine Checkbox?" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Auswahlmöglichkeiten" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Wert" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Stufe" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Stücklisten-Position" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "überprüft" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "Diese Stücklistenposition wurde validiert" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Wird vererbt" -#: part/models.py:3824 +#: part/models.py:3792 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:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" @@ -6332,7 +6350,7 @@ msgstr "Kaufwährung dieses Lagerartikels" #: part/serializers.py:346 msgid "No parts selected" -msgstr "" +msgstr "Keine Teile ausgewählt" #: part/serializers.py:354 msgid "Select category" @@ -6469,11 +6487,11 @@ msgstr "Inventurbericht auf einen bestimmten Lagerort und alle untergeordneten L #: part/serializers.py:978 msgid "Exclude External Stock" -msgstr "" +msgstr "Externen Bestand ausschließen" #: part/serializers.py:979 msgid "Exclude stock items in external locations" -msgstr "" +msgstr "Lagerartikel an externen Orten ausschließen" #: part/serializers.py:984 msgid "Generate Report" @@ -6735,7 +6753,7 @@ msgstr "Inventurinformationen hinzufügen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Inventur" @@ -6964,7 +6982,7 @@ msgstr "Teil kann an Kunden verkauft werden" #: part/templates/part/part_base.html:145 msgid "Part is not active" -msgstr "" +msgstr "Teil ist nicht aktiv" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1277 @@ -7027,7 +7045,7 @@ msgstr "Barcode mit Teil verknüpfen" #: part/templates/part/part_base.html:472 templates/js/translated/part.js:2285 msgid "part" -msgstr "" +msgstr "Teil" #: part/templates/part/part_base.html:512 msgid "Calculate" @@ -7249,7 +7267,7 @@ msgstr "Neue Teilevariante anlegen" #: part/templates/part/variant_part.html:10 msgid "Create a new variant part from this template" -msgstr "" +msgstr "Ein neues Variantenteil aus dieser Vorlage erstellen" #: part/templatetags/inventree_extras.py:185 msgid "Unknown database" @@ -7292,72 +7310,99 @@ msgstr "Keine Aktion angegeben" msgid "No matching action found" msgstr "Keine passende Aktion gefunden" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "Fehlende Barcode-Daten" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Keine Treffer für Barcode" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Treffer für Barcode gefunden" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Barcode entspricht einem bereits vorhandenen Artikel" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "Kein Treffer für angegebenen Wert gefunden" - -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" -msgstr "Ungültiger Lagerort" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" +msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "Artikel wurde bereits erhalten" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7422,8 @@ msgstr "Bietet native Unterstützung für Barcodes" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "InvenTree Mitwirkende" @@ -7480,51 +7525,51 @@ msgstr "Label ist zu groß für Seitengröße" msgid "No labels were generated" msgstr "Es wurden keine Etiketten generiert" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "Unterstützt das Scannen von DigiKey-Barcodes" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "Unterstützt das Scannen von LCSC-Barcodes" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "Lieferantenintegration - Mouser" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "Unterstützt das Scannen von Mouser-Barcodes" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "Lieferantenintegration - TME" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "Unterstützt das Scannen von TME-Barcodes" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7598,7 @@ msgstr "Plugin-Konfiguration" msgid "Plugin Configurations" msgstr "Plugin-Konfigurationen" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Schlüssel" @@ -7998,7 +8043,7 @@ msgstr "Löschen wenn leer" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -8006,23 +8051,40 @@ msgstr "Ablaufdatum" msgid "External Location" msgstr "Externer Standort" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "überfällig" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "Gültiges Teil muss angegeben werden" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "Der angegebene Lieferantenartikel existiert nicht" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" @@ -8046,7 +8108,7 @@ msgstr "Bestand-Lagerort" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Bestand-Lagerorte" @@ -8682,7 +8744,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "abgelaufen" @@ -8691,11 +8753,6 @@ msgstr "abgelaufen" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "überfällig" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" @@ -9319,9 +9376,9 @@ msgid "Edit" msgstr "Bearbeiten" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Löschen" @@ -9425,7 +9482,7 @@ msgid "Home Page" msgstr "Startseite" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9830,7 @@ msgstr "E-Mail-Adresse bestätigen" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Bitte bestätigen Sie, dass %(email)s eine E-Mail-Adresse für den Benutzer %(user_display)s ist." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Bestätigen" @@ -9974,6 +10031,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10648,7 +10706,7 @@ msgstr "Keine aktiven Endprodukte gefunden" #: templates/js/translated/build.js:1377 msgid "Allocated Lines" -msgstr "" +msgstr "Zugewiesene Positionen" #: templates/js/translated/build.js:1391 msgid "Required Tests" @@ -10726,7 +10784,7 @@ msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -10768,15 +10826,15 @@ msgstr "Zuordnung entfernen" #: templates/js/translated/build.js:2446 msgid "build line" -msgstr "" +msgstr "Bauauftragsposition" #: templates/js/translated/build.js:2447 msgid "build lines" -msgstr "" +msgstr "Bauauftragspositionen" #: templates/js/translated/build.js:2465 msgid "No build lines found" -msgstr "" +msgstr "Keine Bauauftragspositionen gefunden" #: templates/js/translated/build.js:2495 templates/js/translated/part.js:790 #: templates/js/translated/part.js:1202 @@ -11127,40 +11185,40 @@ msgstr "Löschvorgang nicht erlaubt" msgid "View operation not allowed" msgstr "Anzeigevorgang nicht erlaubt" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Dieses Formular offen lassen" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Gib eine gültige Nummer ein" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Fehler in Formular" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Eingabe leeren" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Dateispalte" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Feldname" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Spalten auswählen" @@ -11212,27 +11270,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "Label an den Drucker gesendet" @@ -11331,7 +11389,7 @@ msgstr "Benachrichtigungen erscheinen hier" #: templates/js/translated/order.js:89 msgid "Add Extra Line Item" -msgstr "" +msgstr "Zusatzposition hinzufügen" #: templates/js/translated/order.js:126 msgid "Export Order" @@ -12493,7 +12551,7 @@ msgstr "Entfernen" msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Hinzufügen" @@ -13132,7 +13190,7 @@ msgstr "Benachrichtigungen anzeigen" msgid "New Notifications" msgstr "Neue Benachrichtigungen" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "Admin" @@ -13327,7 +13385,7 @@ msgstr "Berechtigungen" msgid "Important dates" msgstr "wichtige Daten" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13335,67 +13393,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" -msgstr "" +msgstr "Tokenname" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" -msgstr "" +msgstr "Benutzerdefinierter Tokenname" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Gruppe" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Ansicht" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Ändern" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index f5e4f3642b..1bce6145a9 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -54,10 +54,10 @@ msgstr "Εισάγετε ημερομηνία" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυ msgid "Registration is disabled." msgstr "Η εγγραφή είναι απενεργοποιημένη." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" @@ -264,10 +264,10 @@ msgstr "Συνημμένο" msgid "Select file to attach" msgstr "Επιλέξτε αρχείο για επισύναψη" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Επιλέξτε αρχείο για επισύναψη" msgid "Link" msgstr "Σύνδεσμος" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" @@ -295,13 +295,13 @@ msgstr "Σχόλιο" msgid "File comment" msgstr "Σχόλιο αρχείου" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Χρήστης" @@ -342,9 +342,9 @@ msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχ msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Όνομα" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Barcode Hash" msgid "Unique hash of barcode data" msgstr "Μοναδικό hash δεδομένων barcode" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Βρέθηκε υπάρχων barcode" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Σφάλμα διακομιστή" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Νόμισμα" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επιλογές" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Όνομα αρχείου" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Μη έγκυρη τιμή" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Αρχείο Δεδομένων" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Επιλέξτε ένα αρχείο για ανέβασμα" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Μη υποστηριζόμενος τύπος αρχείου" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Το αρχείο είναι πολύ μεγάλο" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Δεν βρέθηκαν στήλες στο αρχείο" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Δεν παρασχέθηκαν σειρές δεδομένων" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Δεν δόθηκαν στήλες δεδομένων" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Λείπει απαιτούμενη στήλη: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Διπλή στήλη: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" @@ -710,7 +710,7 @@ msgstr "Επιστράφηκε" msgid "In Progress" msgstr "Σε Εξέλιξη" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Σχετικά με το InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Σειρά Κατασκευής" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Δημιουργία Παραγγελιών" @@ -991,9 +991,9 @@ msgstr "Μη έγκυρη επιλογή για γονική κατασκευή" msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Κωδικός Παρτίδας" msgid "Batch code for this build output" msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Ημερομηνία ολοκλήρωσης στόχου" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Ημερομηνία ολοκλήρωσης" @@ -1171,7 +1171,7 @@ msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελ #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Η παραγγελία κατασκευής {build} έχει ολοκλ msgid "A build order has been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Δεν καθορίστηκε έξοδος κατασκευής" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Ποσότητα" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Στοιχείο πηγαίου αποθέματος" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Εγκατάσταση σε" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Αποθήκη προορισμού" @@ -1416,7 +1416,7 @@ msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index e800bec0a3..8460616f24 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: 2023-11-13 12:13+0000\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,10 +55,10 @@ msgstr "" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -128,7 +128,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -265,10 +265,10 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -282,7 +282,7 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -296,13 +296,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "" @@ -343,9 +343,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -369,8 +369,8 @@ msgstr "" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -433,24 +433,24 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:90 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -713,7 +713,7 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -920,14 +920,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -978,7 +978,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -994,9 +994,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1025,11 +1025,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1138,7 +1138,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1153,7 +1153,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,7 +1174,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1232,39 +1232,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1306,36 +1306,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1352,19 +1352,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1419,7 +1419,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1468,8 +1468,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1761,7 +1761,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1798,8 +1798,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1849,7 +1849,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2355,7 +2355,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2365,7 +2365,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2376,7 +2376,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2385,7 +2385,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2393,7 +2393,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2402,7 +2402,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2413,7 +2413,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2961,558 +2961,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3522,31 +3530,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3559,19 +3567,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3688,7 +3705,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3853,7 +3870,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3879,9 +3896,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3922,7 +3939,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3932,11 +3949,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3966,7 +3983,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4044,8 +4061,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4142,7 +4159,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4165,7 +4182,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4190,7 +4207,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4406,7 +4423,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4520,11 +4537,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4538,7 +4555,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4547,7 +4564,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4575,7 +4592,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4599,11 +4616,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4624,15 +4641,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4640,99 +4657,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4742,185 +4759,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5464,12 +5481,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5478,20 +5495,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5512,11 +5529,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5542,11 +5559,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5570,7 +5587,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5586,7 +5603,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5628,7 +5645,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5646,14 +5663,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5715,294 +5732,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6014,318 +6031,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6738,7 +6755,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7295,72 +7312,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7380,8 +7424,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7483,51 +7527,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7556,7 +7600,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7706,19 +7750,19 @@ msgstr "" msgid "Test report" msgstr "" -#: report/helpers.py:13 +#: report/helpers.py:15 msgid "A4" msgstr "" -#: report/helpers.py:14 +#: report/helpers.py:16 msgid "A3" msgstr "" -#: report/helpers.py:15 +#: report/helpers.py:17 msgid "Legal" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:18 msgid "Letter" msgstr "" @@ -7921,6 +7965,22 @@ msgstr "" msgid "Serial" msgstr "" +#: report/templatetags/report.py:95 +msgid "Asset file does not exist" +msgstr "" + +#: report/templatetags/report.py:144 report/templatetags/report.py:209 +msgid "Image file not found" +msgstr "" + +#: report/templatetags/report.py:230 +msgid "part_image tag requires a Part instance" +msgstr "" + +#: report/templatetags/report.py:269 +msgid "company_image tag requires a Company instance" +msgstr "" + #: stock/admin.py:40 stock/admin.py:126 msgid "Location ID" msgstr "" @@ -7985,7 +8045,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -7993,23 +8053,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8033,7 +8110,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8669,7 +8746,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8678,11 +8755,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9306,9 +9378,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:535 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9412,7 +9484,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2147 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9760,7 +9832,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:762 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9961,6 +10033,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10713,7 +10786,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2143 templates/js/translated/forms.js:2159 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11114,40 +11187,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:788 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:891 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1461 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1959 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2263 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2477 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3075 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -12480,7 +12553,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13119,7 +13192,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13314,7 +13387,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13322,66 +13395,66 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 8d7c59deae..1c2544793a 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -54,10 +54,10 @@ msgstr "Ingrese la fecha" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "El dominio de correo electrónico proporcionado no está aprobado." msgid "Registration is disabled." msgstr "Registro deshabilitado." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" @@ -264,10 +264,10 @@ msgstr "Archivo adjunto" msgid "Select file to attach" msgstr "Seleccionar archivo para adjuntar" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Seleccionar archivo para adjuntar" msgid "Link" msgstr "Enlace" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Enlace a URL externa" @@ -295,13 +295,13 @@ msgstr "Comentario" msgid "File comment" msgstr "Comentario del archivo" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Usuario" @@ -342,9 +342,9 @@ msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Nombre" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Hash del Código de barras" msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Debe ser un número válido" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Moneda" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Seleccionar moneda de las opciones disponibles" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Nombre de Archivo" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Archivo de datos" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Seleccione el archivo para subir" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Tipo de archivo no soportado" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "El archivo es demasiado grande" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "No hay columnas en el archivo" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "No hay filas de datos en el archivo" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "No se proporcionaron filas de datos" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "No hay columnas de datos proporcionadas" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta la columna requerida: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Columna duplicada: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL de imagen remota" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "La descarga de imágenes desde la URL remota no está habilitada" @@ -710,7 +710,7 @@ msgstr "Devuelto" msgid "In Progress" msgstr "En progreso" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Acerca de InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La compilación debe cancelarse antes de poder ser eliminada" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consumible" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Construir órden" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Construir órdenes" @@ -991,9 +991,9 @@ msgstr "Opción no válida para la construcción padre" msgid "Build Order Reference" msgstr "Número de orden de construcción o armado" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Orden de Construcción o Armado a la que se asigna" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Numero de lote" msgid "Batch code for this build output" msgstr "Número de lote de este producto final" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Fecha límite de finalización" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Fecha de finalización" @@ -1171,7 +1171,7 @@ msgstr "El usuario que emitió esta orden" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "El pedido {build} ha sido procesado" msgid "A build order has been completed" msgstr "Pedido #[order] ha sido procesado" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "No se ha especificado salida de construcción" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "La construcción de la salida ya está completa" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "La salida de la construcción no coincide con el orden de construcción" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "La cantidad no puede ser mayor que la cantidad de salida" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Ensamblar equipo" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "Ensamblar equipo" msgid "Quantity" msgstr "Cantidad" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Cantidad requerida para orden de ensamble" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item de construcción o armado debe especificar un resultado o salida, ya que la parte maestra está marcada como rastreable" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "La cantidad debe ser 1 para el stock serializado" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "El artículo de almacén selelccionado no coincide con la línea BOM" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "El artículo de almacén selelccionado no coincide con la línea BOM" msgid "Stock Item" msgstr "Artículo de stock" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Producto original de stock" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Cantidad de stock a asignar para construir" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Instalar en" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Artículo de stock de destino" @@ -1416,7 +1416,7 @@ msgstr "Autoasignar Números de Serie" msgid "Automatically allocate required items with matching serial numbers" msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Los siguientes números seriales ya existen o son inválidos" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Ubicación para las salidas de construcción completadas" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "Stock no ha sido asignado completamente a este pedido de construcción" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "Salidas completadas" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Fuente de stock" msgid "Stock can be taken from any available location." msgstr "Las existencias se pueden tomar desde cualquier ubicación disponible." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destinación" @@ -2352,7 +2352,7 @@ msgstr "Copiar plantillas de parámetros de categoría" msgid "Copy category parameter templates when creating a part" msgstr "Copiar plantillas de parámetros de categoría al crear una parte" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Plantilla" msgid "Parts are templates by default" msgstr "Las partes son plantillas por defecto" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Montaje" msgid "Parts can be assembled from other components by default" msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Componente" @@ -2382,7 +2382,7 @@ msgstr "Componente" msgid "Parts can be used as sub-components by default" msgstr "Las partes pueden ser usadas como subcomponentes por defecto" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Comprable" @@ -2390,7 +2390,7 @@ msgstr "Comprable" msgid "Parts are purchaseable by default" msgstr "Las partes son comprables por defecto" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendible" @@ -2399,7 +2399,7 @@ msgstr "Vendible" msgid "Parts are salable by default" msgstr "Las partes se pueden vender por defecto" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Rastreable" msgid "Parts are trackable by default" msgstr "Las partes son rastreables por defecto" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "Intervalo de borrado de informe" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Ocultar partes inactivas" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar partes inactivas en los resultados mostrados en la página de inicio" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Mostrar partes suscritas" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Mostrar las partes suscritas en la página principal" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Mostrar categorías suscritas" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorías de partes suscritas en la página de inicio" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Mostrar últimas partes" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Mostrar las últimas partes en la página de inicio" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Mostrar BOMs no validadas" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar BOMs que esperan validación en la página de inicio" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Mostrar cambios recientes de stock" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Mostrar stock bajo" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Mostrar artículos de stock bajo en la página de inicio" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Mostrar stock agotado" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Mostrar artículos agotados en la página de inicio" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Mostrar stock necesario" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar artículos de stock necesarios para trabajos en la página de inicio" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Mostrar stock caducado" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Mostrar artículos de stock caducados en la página de inicio" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Mostrar stock obsoleto" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Mostrar artículos de stock obsoletos en la página de inicio" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Mostrar trabajos pendientes" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Mostrar trabajos vencidos" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Mostrar Órdenes de Compra Pendientes" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Mostrar las OC destacadas en la página de inicio" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Mostrar OC atrasadas" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Mostrar las OC vencidas en la página de inicio" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Mostrar OV pendiemtes" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar OV pendientes en la página de inicio" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Mostrar OV atrasadas" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Mostrar OV atrasadas en la página de inicio" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Mostrar novedades" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Mostrar las últimas novedades de InvenTree en la página de inicio" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Mostrar etiqueta interior" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Impresora predeterminada" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Mostrar informe en línea" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Buscar partes" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Buscar partes de proveedor" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Ocultar Partes Inactivas" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Buscar categorías" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Buscar inventario" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Buscar ubicaciones" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Mostrar ubicaciones de almacén en la ventana de vista previa de búsqueda" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Buscar empresas" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Mostrar empresas en la ventana de vista previa de búsqueda" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Buscar órdenes de compra" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Buscar órdenes de venta" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Buscar órdenes de devolución" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Resultados de la vista previa" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Búsqueda Regex" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "Habilitar expresiones regulares en las consultas de búsqueda" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "Búsqueda por palabra completa" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "Las consultas de búsqueda devuelven resultados para palabras enteras coincidentes" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Mostrar cantidad en formularios" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Mostrar la cantidad de partes disponibles en algunos formularios" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "Formularios de cierre de teclas de escape" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Usa la clave de escape para cerrar formularios modales" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Barra de navegación fija" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "La posición de la barra de navegación se fija en la parte superior de la pantalla" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Formato de Fecha" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar fechas" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planificación de partes" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "Cantidad de salto de precio" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Precio" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "Precio unitario a la cantidad especificada" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Punto final en el que se recibe este webhook" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Nombre para este webhook" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Activo" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Está activo este webhook" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Token" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Token para el acceso" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Clave" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Secreto compartido para HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "ID de mensaje" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Identificador único para este mensaje" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Host" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Servidor desde el cual se recibió este mensaje" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Encabezado" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Encabezado del mensaje" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Cuerpo" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Cuerpo de este mensaje" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Endpoint en el que se recibió este mensaje" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Trabajado en" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "¿El trabajo en este mensaje ha terminado?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Id" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Autor" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumen" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Leer" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "¿Esta noticia ya fue leída?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "¿Esta noticia ya fue leída?" msgid "Image" msgstr "Imágen" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "Archivo de imagen" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "Nombre de unidad" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "Símbolo de unidad opcional" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definición" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "Definición de unidad" @@ -3556,19 +3564,28 @@ msgstr "Nuevo {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "Se ha creado un nuevo pedido y se le ha asignado" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Artículos Recibidos" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Los artículos han sido recibidos contra una orden de compra" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "Los artículos han sido recibidos contra una orden de devolución" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Error generado por el complemento" @@ -3685,7 +3702,7 @@ msgstr "Moneda predeterminada utilizada para esta empresa" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Empresa" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Valor del parámetro" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "Descripción de la parte del proveedor" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "Descripción de la parte del proveedor" msgid "Note" msgstr "Nota" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "costo base" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" @@ -3963,7 +3980,7 @@ msgstr "Cantidad de paquete" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Cantidad total suministrada en un solo paquete. Dejar vacío para artículos individuales." -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "múltiple" @@ -4041,8 +4058,8 @@ msgstr "Descargar desde URL" msgid "Delete image" msgstr "Borrar imagen" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Stock del Proveedor" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Ordenes de compra" @@ -4162,7 +4179,7 @@ msgstr "Nueva orden de compra" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Órdenes de venta" @@ -4187,7 +4204,7 @@ msgstr "Stock asignado" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "Ordenes de devolución" @@ -4403,7 +4420,7 @@ msgstr "Actualizar disponibilidad de parte" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Elementos de stock" @@ -4517,11 +4534,11 @@ msgstr "Código QR" msgid "Total Price" msgstr "Precio Total" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "No se encontró ninguna orden de compra coincidente" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "No se encontró ninguna orden de compra coincidente" msgid "Purchase Order" msgstr "Orden de compra" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Orden de compra" msgid "Return Order" msgstr "Orden de devolución" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Desconocido" @@ -4572,7 +4589,7 @@ msgstr "Descripción del pedido (opcional)" msgid "Select project code for this order" msgstr "Seleccione el código del proyecto para este pedido" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Enlace a Url externa" @@ -4596,11 +4613,11 @@ msgstr "Punto de contacto para este pedido" msgid "Company address for this order" msgstr "Dirección de la empresa para este pedido" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Referencia del pedido" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Estado de la orden de compra" @@ -4621,15 +4638,15 @@ msgstr "Código de referencia de pedido del proveedor" msgid "received by" msgstr "recibido por" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Fecha de emisión" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Fecha de expedición del pedido" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "La fecha de pedido fue completada" @@ -4637,99 +4654,99 @@ msgstr "La fecha de pedido fue completada" msgid "Part supplier must match PO supplier" msgstr "El proveedor de la parte debe coincidir con el proveedor de PO" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "La cantidad debe ser un número positivo" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Empresa a la que se venden los artículos" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Referencia del cliente " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Código de referencia de pedido del cliente" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Fecha de envío" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "enviado por" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "El pedido no se puede completar porque no se han asignado partes" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "Sólo una orden abierta puede ser marcada como completa" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "El pedido no se puede completar porque hay envíos incompletos" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "El pedido no se puede completar porque hay partidas incompletas" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Cantidad del artículo" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Referencia de partida" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Notas de partida" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "Descripción de partida (opcional)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Contexto" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Contexto adicional para esta línea" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Precio unitario" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "La parte del proveedor debe coincidir con el proveedor" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "eliminado" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Orden" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Parte del proveedor" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "Parte del proveedor" msgid "Received" msgstr "Recibido" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Número de artículos recibidos" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Precio de Compra" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Precio de compra unitario" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "¿Dónde quiere el comprador almacenar este objeto?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Una parte virtual no puede ser asignada a un pedido de venta" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Precio de Venta" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Precio de venta unitario" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Cantidad enviada" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Fecha del envío" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Fecha de entrega" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "Fecha de entrega del envío" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Revisado por" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Usuario que revisó este envío" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Envío" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Número de envío" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Número de Seguimiento" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Información de seguimiento del envío" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Número de factura" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Número de referencia para la factura asociada" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "El envío ya ha sido enviado" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "El envío no tiene artículos de stock asignados" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "El artículo de stock no ha sido asignado" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "No se puede asignar stock a una línea sin una parte" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La cantidad de asignación no puede exceder la cantidad de stock" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "La cantidad debe ser 1 para el stock serializado" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "La orden de venta no coincide con el envío" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "El envío no coincide con el pedido de venta" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Línea" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Referencia del envío del pedido de venta" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Ítem" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Seleccionar artículo de stock para asignar" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Especificar la cantidad de asignación de stock" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "Referencia de la orden de devolución" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "Empresa de la cual se están devolviendo los artículos" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "Estado de la orden de devolución" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "Sólo los artículos serializados pueden ser asignados a una orden de devolución" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "Seleccionar el artículo a devolver del cliente" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "Fecha de recepción" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "La fecha en la que se recibió este artículo de devolución" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Resultado" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "Salida para esta partida" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "Costo asociado con la devolución o reparación para esta partida" @@ -5461,12 +5478,12 @@ msgstr "Actualizado el precio unitario de {part} a {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "ID de Parte" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Nombre de parte" @@ -5475,20 +5492,20 @@ msgstr "Nombre de parte" msgid "Part Description" msgstr "Descripción de parte" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisión" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Palabras claves" @@ -5509,11 +5526,11 @@ msgstr "ID de ubicación predeterminada" msgid "Default Supplier ID" msgstr "ID de proveedor predeterminado" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Stock mínimo" @@ -5539,11 +5556,11 @@ msgstr "Usado en" msgid "Building" msgstr "En construcción" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Costo mínimo" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Costo máximo" @@ -5567,7 +5584,7 @@ msgstr "Ruta de Categoría" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Partes" @@ -5583,7 +5600,7 @@ msgstr "ID de artículo de BOM" msgid "Parent IPN" msgstr "IPN del padre" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "IPN de la parte" @@ -5625,7 +5642,7 @@ msgstr "Validación de Lista de Materiales" msgid "This option must be selected" msgstr "Esta opción debe ser seleccionada" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Ubicación Predeterminada" @@ -5643,14 +5660,14 @@ msgstr "Stock Disponible" msgid "Input quantity for price calculation" msgstr "Cantidad de entrada para el cálculo del precio" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoría de parte" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Categorías de parte" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "Ya existe un artículo de almacén con este número de serie" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN duplicado no permitido en la configuración de partes" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "Parte con este nombre, IPN y revisión ya existe." -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "¡No se pueden asignar partes a las categorías de partes estructurales!" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Nombre de la parte" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Es plantilla" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "¿Es esta parte una parte de la plantilla?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "¿Es esta parte una variante de otra parte?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "Descripción de parte (opcional)" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqueda" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Categoría" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Categoría de parte" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Número de parte interna" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Revisión de parte o número de versión" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "¿Dónde se almacena este artículo normalmente?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Proveedor por defecto" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Parte de proveedor predeterminada" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Expiración por defecto" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Nivel mínimo de stock permitido" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Unidades de medida para esta parte" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "¿Se puede construir esta parte a partir de otras partes?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "¿Se puede utilizar esta parte para construir otras partes?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "¿Esta parte tiene seguimiento de objetos únicos?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "¿Se puede comprar esta parte a proveedores externos?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "¿Se puede vender esta parte a los clientes?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "¿Está activa esta parte?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "¿Es ésta una parte virtual, como un producto de software o una licencia?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "Suma de verificación de BOM" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "Suma de verificación de BOM almacenada" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "BOM comprobado por" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "Fecha BOM comprobada" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Creación de Usuario" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Último inventario" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Vender múltiples" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "Moneda utilizada para almacenar en caché los cálculos de precios" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "Costo mínimo de BOM" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "Costo mínimo de partes de componentes" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "Costo máximo de BOM" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "Costo máximo de partes de componentes" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "Costo mínimo de compra" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "Costo histórico mínimo de compra" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "Costo máximo de compra" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "Costo histórico máximo de compra" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "Precio interno mínimo" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "Precio interno máximo" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "Costo máximo basado en precios reducidos internos" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "Precio mínimo de proveedor" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "Precio mínimo de la parte de proveedores externos" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "Precio máximo de proveedor" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "Precio máximo de la parte de proveedores externos" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "Costo mínimo de variante" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "Costo mínimo calculado de las partes variantes" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "Costo máximo de variante" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "Costo máximo calculado de las partes variantes" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "Precio de venta mínimo" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "Precio de venta mínimo basado en precios reducidos" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "Precio de venta máximo" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "Precio de venta máximo basado en precios reducidos" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "Costo de venta mínimo" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "Precio de venta mínimo histórico" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "Número de artículos" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "Fecha" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Notas adicionales" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Informe" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Número de partes" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "Las plantillas de prueba sólo pueden ser creadas para partes rastreables" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "Ya existe una prueba con este nombre para esta parte" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nombre de prueba" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Introduzca un nombre para la prueba" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Descripción de prueba" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Introduce la descripción para esta prueba" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Requerido" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "¿Es necesario pasar esta prueba?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Requiere valor" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Adjunto obligatorio" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "El nombre de parámetro en la plantilla tiene que ser único" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Nombre de Parámetro" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Casilla de verificación" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "¿Es este parámetro una casilla de verificación?" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Opciones" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opciones válidas para este parámetro (separados por comas)" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "Opción inválida para el valor del parámetro" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Parte principal" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Plantilla de parámetro" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Datos" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Valor del parámetro" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Valor predeterminado" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Valor de parámetro por defecto" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "ID de parte o nombre de parte" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Valor de ID de parte única" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Valor IPN de parte" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Nivel" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "Nivel de BOM" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Item de Lista de Materiales" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Seleccionar parte principal" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Sub parte" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "Cantidad del artículo en BOM" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Este artículo BOM es opcional" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este artículo de BOM es consumible (no está rastreado en órdenes de construcción)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Exceso" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "Referencia de artículo de BOM" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "Notas del artículo de BOM" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Suma de verificación" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "Suma de verificación de línea de BOM" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validado" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "Este artículo de BOM ha sido validado" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este artículo BOM es heredado por BOMs para partes variantes" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Permitir variantes" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "La cantidad debe ser un valor entero para las partes rastreables" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "Debe especificar la subparte" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "Ítem de BOM sustituto" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sustituta no puede ser la misma que la parte principal" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "Artículo BOM superior" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Sustituir parte" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Seleccionar parte relacionada" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Inventario" @@ -7292,72 +7309,99 @@ msgstr "No se especificó ninguna acción" msgid "No matching action found" msgstr "No se encontró ninguna acción coincidente" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "Faltan datos de código de barras" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "No se encontró ninguna coincidencia para los datos del código de barras" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Coincidencia encontrada para datos de códigos de barras" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "El código de barras coincide con artículo existente" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "No hay coincidencias para el valor proporcionado" - -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "Proporciona soporte nativo para códigos de barras" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "Contribuidores de InvenTree" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "Configuración del complemento" msgid "Plugin Configurations" msgstr "Configuraciones del Plug-in" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Clave" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Fecha de Expiración" @@ -8006,23 +8050,40 @@ msgstr "Fecha de Expiración" msgid "External Location" msgstr "Ubicación externa" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "Desactualizado" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "Cantidad requerida" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "Debe suministrarse una parte válida" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "Ubicación de Stock" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Ubicaciones de Stock" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Este ítem expiró el %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "Expirado" @@ -8691,11 +8752,6 @@ msgstr "Expirado" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Este ítem expira el %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "Desactualizado" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "Ningún inventario realizado" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "Editar" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Eliminar" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "Página de Inicio" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Confirmar Email" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Confirme que %(email)s es una dirección de correo electrónico para el usuario %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Confirmar" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "No hay trabajos que coincidan con la consulta" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "Operación de eliminación no permitida" msgid "View operation not allowed" msgstr "Operación de visualización no permitida" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Mantener este formulario abierto" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Introduzca un número válido" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Existen errores en el formulario" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "No hay resultados" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Buscando" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Limpiar entrada" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Columna de archivo" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Nombre del campo" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Seleccionar columnas" @@ -11212,27 +11269,27 @@ msgstr "seleccionado" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "Etiquetas enviadas a la impresora" @@ -12493,7 +12550,7 @@ msgstr "Tomar" msgid "Add Stock" msgstr "Añadir Stock" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Añadir" @@ -13132,7 +13189,7 @@ msgstr "Mostrar notificaciones" msgid "New Notifications" msgstr "Notificaciones nuevas" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "Admin" @@ -13327,7 +13384,7 @@ msgstr "Permisos" msgid "Important dates" msgstr "Fechas importantes" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13335,67 +13392,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Permiso establecido" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Grupo" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Vista" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Permiso para ver artículos" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Permiso para añadir artículos" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Cambiar" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Permisos para editar artículos" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Permiso para eliminar artículos" diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index e800bec0a3..8460616f24 100644 --- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-13 12:13+0000\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,10 +55,10 @@ msgstr "" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -128,7 +128,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -265,10 +265,10 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -282,7 +282,7 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -296,13 +296,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "" @@ -343,9 +343,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -369,8 +369,8 @@ msgstr "" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -433,24 +433,24 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:90 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -713,7 +713,7 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -920,14 +920,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -978,7 +978,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -994,9 +994,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1025,11 +1025,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1138,7 +1138,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1153,7 +1153,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,7 +1174,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1232,39 +1232,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1306,36 +1306,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1352,19 +1352,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1419,7 +1419,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1468,8 +1468,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1761,7 +1761,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1798,8 +1798,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1849,7 +1849,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2355,7 +2355,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2365,7 +2365,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2376,7 +2376,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2385,7 +2385,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2393,7 +2393,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2402,7 +2402,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2413,7 +2413,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2961,558 +2961,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3522,31 +3530,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3559,19 +3567,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3688,7 +3705,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3853,7 +3870,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3879,9 +3896,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3922,7 +3939,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3932,11 +3949,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3966,7 +3983,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4044,8 +4061,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4142,7 +4159,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4165,7 +4182,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4190,7 +4207,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4406,7 +4423,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4520,11 +4537,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4538,7 +4555,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4547,7 +4564,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4575,7 +4592,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4599,11 +4616,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4624,15 +4641,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4640,99 +4657,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4742,185 +4759,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5464,12 +5481,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5478,20 +5495,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5512,11 +5529,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5542,11 +5559,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5570,7 +5587,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5586,7 +5603,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5628,7 +5645,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5646,14 +5663,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5715,294 +5732,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6014,318 +6031,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6738,7 +6755,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7295,72 +7312,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7380,8 +7424,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7483,51 +7527,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7556,7 +7600,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7706,19 +7750,19 @@ msgstr "" msgid "Test report" msgstr "" -#: report/helpers.py:13 +#: report/helpers.py:15 msgid "A4" msgstr "" -#: report/helpers.py:14 +#: report/helpers.py:16 msgid "A3" msgstr "" -#: report/helpers.py:15 +#: report/helpers.py:17 msgid "Legal" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:18 msgid "Letter" msgstr "" @@ -7921,6 +7965,22 @@ msgstr "" msgid "Serial" msgstr "" +#: report/templatetags/report.py:95 +msgid "Asset file does not exist" +msgstr "" + +#: report/templatetags/report.py:144 report/templatetags/report.py:209 +msgid "Image file not found" +msgstr "" + +#: report/templatetags/report.py:230 +msgid "part_image tag requires a Part instance" +msgstr "" + +#: report/templatetags/report.py:269 +msgid "company_image tag requires a Company instance" +msgstr "" + #: stock/admin.py:40 stock/admin.py:126 msgid "Location ID" msgstr "" @@ -7985,7 +8045,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -7993,23 +8053,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8033,7 +8110,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8669,7 +8746,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8678,11 +8755,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9306,9 +9378,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:535 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9412,7 +9484,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2147 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9760,7 +9832,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:762 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9961,6 +10033,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10713,7 +10786,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2143 templates/js/translated/forms.js:2159 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11114,40 +11187,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:788 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:891 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1461 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1959 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2263 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2477 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3075 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -12480,7 +12553,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13119,7 +13192,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13314,7 +13387,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13322,66 +13395,66 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po index b25f780d7a..f4054b0ac5 100644 --- a/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -54,10 +54,10 @@ msgstr "تاریخ را وارد کنید" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "دامنه ایمیل ارائه شده تایید نشده است." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -264,10 +264,10 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -295,13 +295,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "فایل‌های داده" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "فایل را برای بارگذاری انتخاب کنید" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "این نوع فایل پشتیبانی نمی‌شود" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "حجم فایل خیلی بزرگ است" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "هیچ ستونی در فایل یافت نشد" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "هیچ ردیف داده ای در فایل یافت نشد" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "هیچ ردیف داده ای ارائه نشده است" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "هیچ ستون داده ای ارائه نشده است" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "ستون مورد نیاز وجود ندارد: \"{name}\"" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "ستون تکراری: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "آدرس اینترنتی" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "آدرس فایل تصویری از راه دور" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "تایید" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/fi/LC_MESSAGES/django.po b/InvenTree/locale/fi/LC_MESSAGES/django.po index bdaf3e76b0..219aacfa80 100644 --- a/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -54,10 +54,10 @@ msgstr "Anna päivämäärä" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Annettu määrä on virheellinen" @@ -264,10 +264,10 @@ msgstr "Liite" msgid "Select file to attach" msgstr "Valitse liitettävä tiedosto" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Valitse liitettävä tiedosto" msgid "Link" msgstr "Linkki" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Linkki ulkoiseen URLiin" @@ -295,13 +295,13 @@ msgstr "Kommentti" msgid "File comment" msgstr "Tiedoston kommentti" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Käyttäjä" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "Virheellinen valinta" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Nimi" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Palvelinvirhe" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Täytyy olla kelvollinen luku" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuutta" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Tiedostonimi" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Virheellinen arvo" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Datatiedosto" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Valitse lähetettävä datatiedosto" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Tiedostotyyppiä ei tueta" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Tiedosto on liian suuri" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Datarivejä ei annettu" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Datasarakkeita ei annettu" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Vaadittu sarake puuttuu: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikaatti sarake: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "Kuvatiedoston URL" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Kuvien lataaminen ei ole käytössä" @@ -710,7 +710,7 @@ msgstr "Palautettu" msgid "In Progress" msgstr "Kesken" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Tietoja InvenTree:stä" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Määrä" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Varastotuote" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponentti" @@ -2382,7 +2382,7 @@ msgstr "Komponentti" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Ostettavissa" @@ -2390,7 +2390,7 @@ msgstr "Ostettavissa" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Seurattavissa" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Näytä uutiset" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Näytä uutiset kotisivulla" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Hinta" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Aktiivinen" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Salaisuus" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Isäntä" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Otsikko" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Julkaistu" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Julkaisija" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Yhteenveto" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "Kuva" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "Kuvatiedosto" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "Uusi {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Yritys" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "Muistiinpano" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "QR-koodi" msgid "Total Price" msgstr "Hinta yhteensä" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Tilauksen viite" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Asiakkaan viite " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "Vastaanotettu" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Seurantakoodi" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Laskunumero" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Avainsanat" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategoria" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "Päivämäärä" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Muut merkinnät" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Raportti" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Avain" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "Muokkaa" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Poista" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Vahvista sähköpostiosoite" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Vahvista" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "Näytä ilmoitukset" msgid "New Notifications" msgstr "Uudet ilmoitukset" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "Oikeudet" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Ryhmä" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Näytä" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Oikeus tarkastella kohteita" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Oikeus lisätä kohteita" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Muuta" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Oikeus muokata kohteita" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Oikeus poistaa kohteita" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 23173bd9e0..cf1a4f28e1 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -54,10 +54,10 @@ msgstr "Entrer la date" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Le domaine e-mail fourni n'est pas approuvé." msgid "Registration is disabled." msgstr "L'enregistrement est désactivé." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" @@ -264,10 +264,10 @@ msgstr "Pièce jointe" msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Sélectionnez un fichier à joindre" msgid "Link" msgstr "Lien" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Lien vers une url externe" @@ -295,13 +295,13 @@ msgstr "Commentaire" msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Utilisateur" @@ -342,9 +342,9 @@ msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent" msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Nom" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Hash du code-barre" msgid "Unique hash of barcode data" msgstr "Hachage unique des données du code-barres" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Code-barres existant trouvé" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Erreur serveur" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Une erreur a été loguée par le serveur." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Doit être un nombre valide" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Devise" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Sélectionnez la devise à partir des options disponibles" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Nom du fichier" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Valeur non valide" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Fichier de données" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Sélectionnez le fichier de données à envoyer" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Format de fichier non supporté" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Fichier trop volumineux" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Pas de colonnes trouvées dans le fichier" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Par de lignes de données trouvées dans le fichier" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Pas de lignes de données fournies" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Pas de colonne de données fournie" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonne requise manquante : {name}" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonne duliquée : '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL du fichier image distant" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Le téléchargement des images depuis une URL distante n'est pas activé" @@ -710,7 +710,7 @@ msgstr "Retourné" msgid "In Progress" msgstr "En Cours" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "À propos d'InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La construction doit être annulée avant de pouvoir être supprimée" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consommable" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Ordre de Fabrication" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Ordres de Fabrication" @@ -991,9 +991,9 @@ msgstr "Choix invalide pour la fabrication parente" msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "BuildOrder associé a cette fabrication" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Code de lot" msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Date d'achèvement cible" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Date d'achèvement" @@ -1171,7 +1171,7 @@ msgstr "Utilisateur ayant émis cette commande de construction" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "La commande de construction {build} a été effectuée" msgid "A build order has been completed" msgstr "Une commande de construction a été effectuée" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Pas d'ordre de production défini" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "L'ordre de production a déjà été réalisé" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantité ne peut pas être supérieure à la quantité de sortie" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Création de l'objet" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "Création de l'objet" msgid "Quantity" msgstr "Quantité" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Quantité requise pour la commande de construction" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Stock de destination de l'article" @@ -1416,7 +1416,7 @@ msgstr "Allouer automatiquement les numéros de série" msgid "Automatically allocate required items with matching serial numbers" msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Les numéros de série suivants existent déjà, ou sont invalides" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "Sorties de Construction terminées" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Stock d'origine" msgid "Stock can be taken from any available location." msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destination" @@ -2352,7 +2352,7 @@ msgstr "Copier les templates de paramètres de catégorie" msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Modèle" msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Assemblage" msgid "Parts can be assembled from other components by default" msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Composant" @@ -2382,7 +2382,7 @@ msgstr "Composant" msgid "Parts can be used as sub-components by default" msgstr "Les pièces peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Achetable" @@ -2390,7 +2390,7 @@ msgstr "Achetable" msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendable" @@ -2399,7 +2399,7 @@ msgstr "Vendable" msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Traçable" msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Afficher les composants suivis" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Afficher les composants suivis sur l'écran d'accueil" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Afficher les catégories suivies" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Afficher les catégories de pièces suivies sur la page d'accueil" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Afficher les derniers composants sur la page d'accueil" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Afficher les listes de matériaux non validées" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Afficher le stock faible" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Afficher les articles en stock bas sur la page d'accueil" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Afficher le stock expiré" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Afficher les pièces en stock expirées sur la page d'accueil" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Afficher le stock périmé" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Afficher les articles de stock périmés sur la page d'accueil" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Afficher les constructions en attente" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Afficher les constructions en attente sur la page d'accueil" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Afficher les constructions en retard" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Afficher les constructions en retard sur la page d'accueil" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Afficher les commandes en suspens" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Afficher les commandes en suspens sur la page d'accueil" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Afficher les commandes en retard" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Afficher les commandes en retard sur la page d'accueil" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Afficher les envois en suspens" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Afficher les envois en suspens sur la page d'accueil" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Afficher les envois en retard" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Afficher les envois en retard sur la page d'accueil" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Afficher les nouvelles" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Afficher les nouvelles sur la page d'accueil" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Affichage du libellé en ligne" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Imprimante d'étiquettes par défaut" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Affichage du rapport en ligne" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Rechercher de pièces" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Rechercher les pièces du fabricant" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Masquer les pièces inactives" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Rechercher des catégories" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Rechercher dans le stock" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Cacher les pièces indisponibles" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Chercher des Emplacements" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Rechercher les entreprises" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Rechercher les commandes de construction" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Rechercher des bons de commande" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Exclure les bons de commande inactifs" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Rechercher les bons de commande" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Exclure les bons de commande inactives" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Rechercher les commandes retournées" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Résultats de l'aperçu de la recherche" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Recherche Regex" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Afficher la quantité dans les formulaires" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Afficher la quantité disponible dans certains formulaires" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "La touche Echap ferme les formulaires" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Utilisez la touche Echap pour fermer les formulaires modaux" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Barre de navigation fixe" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "La position de la barre de navigation est fixée en haut de l'écran" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Format de date" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planification des pièces" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Afficher les informations de planification des pièces" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventaire des pièces" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Longueur de la chaîne dans les Tableau" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Limite de longueur maximale pour les chaînes affichées dans les vues de la table" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Prix" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Actif" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Ce webhook (lien de rappel HTTP) est-il actif" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Jeton" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Jeton d'accès" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Confidentiel" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "ID message" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Identifiant unique pour ce message" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Hôte" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Hôte à partir duquel ce message a été reçu" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Entête" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "En-tête de ce message" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Corps" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Corps de ce message" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Endpoint à partir duquel ce message a été reçu" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "Le travail sur ce message est-il terminé ?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Id" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titre" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Publié" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Auteur" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Résumé" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Lu" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "Cette nouvelle a-t-elle été lue ?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "Cette nouvelle a-t-elle été lue ?" msgid "Image" msgstr "Image" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "Nouveau {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "Une nouvelle commande a été créée et vous a été assignée" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Articles reçus" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Des articles d'un bon de commande ont été reçus" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Erreur déclenchée par le plugin" @@ -3685,7 +3702,7 @@ msgstr "Devise par défaut utilisée pour cette entreprise" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Société" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Valeur du paramètre" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "La pièce du fabricant liée doit faire référence à la même pièce d #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "Description de la pièce du fournisseur" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "Description de la pièce du fournisseur" msgid "Note" msgstr "Note" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "coût de base" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" @@ -3963,7 +3980,7 @@ msgstr "Nombre de paquet" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "plusieurs" @@ -4041,8 +4058,8 @@ msgstr "Télécharger l'image depuis l'URL" msgid "Delete image" msgstr "Supprimer image" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Stock fournisseur" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Bons de commande" @@ -4162,7 +4179,7 @@ msgstr "Nouvelle commande achat" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Ventes" @@ -4187,7 +4204,7 @@ msgstr "Stock affecté" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "Mettre à jour la disponibilité des pièces" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Éléments en stock" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "Aucun bon de commande correspondant n'a été trouvé" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "Aucun bon de commande correspondant n'a été trouvé" msgid "Purchase Order" msgstr "Commande d’achat" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Commande d’achat" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Inconnu" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Lien vers une page externe" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Référence de la commande" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Statut de la commande d'achat" @@ -4621,15 +4638,15 @@ msgstr "Code de référence de la commande fournisseur" msgid "received by" msgstr "reçu par" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Date d'émission" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Date d'émission de la commande" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Date à laquelle la commande a été complété" @@ -4637,99 +4654,99 @@ msgstr "Date à laquelle la commande a été complété" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "La quantité doit être un nombre positif" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Société à laquelle les articles sont vendus" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Nom de l’expédition" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "expédié par" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "La commande ne peut pas être terminée car aucune pièce n'a été assignée" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "La commande ne peut pas être terminée car il y a des envois incomplets" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Nombre d'élement" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Contexte" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Prix unitaire" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "supprimé" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Commande" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "Pièce fournisseur" msgid "Received" msgstr "Reçu" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Prix d'achat" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Prix d'achat unitaire" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Où l'Acheteur veut-il stocker cet article ?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "La pièce virtuelle ne peut pas être affectée à une commande" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Seules les pièces vendues peuvent être attribuées à une commande" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prix de vente" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Prix de vente unitaire" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Quantité expédiée" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Date d'expédition" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Vérifié par" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Utilisateur qui a vérifié cet envoi" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Envoi" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Numéro d'expédition" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "N° de suivi" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Information de suivi des colis" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "N° de facture" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Numéro de référence de la facture associée" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "Le colis a déjà été envoyé" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "L'expédition n'a pas d'articles en stock alloués" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "L'article de stock n'a pas été assigné" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Impossible d'allouer le stock à une ligne sans pièce" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Ligne" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Article" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "ID de composant" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Nom de l'article" @@ -5475,20 +5492,20 @@ msgstr "Nom de l'article" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Révision" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Mots-clés" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Stock Minimum" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Pièces" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Catégories de composants" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Nom de l'article" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Catégorie" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "Date" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Notes additionnelles" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Requis" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Valeur requise" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Données" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Valeur par Défaut" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Article du BOM" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validée" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Prise d'inventaire" @@ -7292,72 +7309,99 @@ msgstr "Aucune action spécifiée" msgid "No matching action found" msgstr "Aucune action correspondante trouvée" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Aucune correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "Contributeurs d'InvenTree" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "Modifier" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Supprimer" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Confirmer" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "Supprimer" msgid "Add Stock" msgstr "Ajouter du stock" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Ajouter" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "Droits" msgid "Important dates" msgstr "Dates importantes" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Droit défini" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Groupe" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Vue" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Droit de voir des éléments" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Droit d'ajouter des éléments" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Modifier" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Droit de modifier des élément" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Droit de supprimer des éléments" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 26337d8b0a..90b564e35e 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -54,10 +54,10 @@ msgstr "הזן תאריך סיום" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -264,10 +264,10 @@ msgstr "קובץ מצורף" msgid "Select file to attach" msgstr "בחר קובץ לצירוף" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "בחר קובץ לצירוף" msgid "Link" msgstr "קישור" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "קישור חיצוני" @@ -295,13 +295,13 @@ msgstr "הערה" msgid "File comment" msgstr "הערת קובץ" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "משתמש" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "שם" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "שם קובץ" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -710,7 +710,7 @@ msgstr "הוחזר" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "כמות" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "לא פורטה הפעולה" msgid "No matching action found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "אשר" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/hi/LC_MESSAGES/django.po b/InvenTree/locale/hi/LC_MESSAGES/django.po index 1195a42d42..39fdd23afa 100644 --- a/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -54,10 +54,10 @@ msgstr "तारीख दर्ज करें" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -264,10 +264,10 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -295,13 +295,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index 68a5006de3..f3f223afa4 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -54,10 +54,10 @@ msgstr "Dátum megadása" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "A megadott email domain nincs jóváhagyva." msgid "Registration is disabled." msgstr "Regisztráció le van tiltva." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" @@ -264,10 +264,10 @@ msgstr "Melléklet" msgid "Select file to attach" msgstr "Válaszd ki a mellekelni kívánt fájlt" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Link külső URL-re" @@ -295,13 +295,13 @@ msgstr "Megjegyzés" msgid "File comment" msgstr "Leírás, bővebb infó" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Felhasználó" @@ -342,9 +342,9 @@ msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt" msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Név" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Vonalkód hash" msgid "Unique hash of barcode data" msgstr "Egyedi vonalkód hash" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Létező vonalkód" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Kiszolgálóhiba" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Pénznem" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Válassz pénznemet a lehetőségek közül" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Fájlnév" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Érvénytelen érték" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Adat fájl" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Fájl kiválasztása feltöltéshez" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Nem támogatott fájltípus" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Fájl túl nagy" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Nem találhatók oszlopok a fájlban" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Nincsenek adatsorok a fájlban" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Nincs adatsor megadva" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Nincs adat oszlop megadva" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Szükséges oszlop hiányzik: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikált oszlop: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "A távoli kép URL-je" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Képek letöltése távoli URL-ről nem engedélyezett" @@ -710,7 +710,7 @@ msgstr "Visszaküldve" msgid "In Progress" msgstr "Folyamatban" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Verzió információk" msgid "Build must be cancelled before it can be deleted" msgstr "A gyártást be kell fejezni a törlés előtt" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Fogyóeszköz" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Gyártási utasítás" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Gyártási utasítások" @@ -991,9 +991,9 @@ msgstr "Hibás választás a szülő gyártásra" msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Batch kód" msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Befejezés cél dátuma" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Befejezés dátuma" @@ -1171,7 +1171,7 @@ msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "A {build} gyártási utasítás elkészült" msgid "A build order has been completed" msgstr "Gyártási utasítás elkészült" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Nincs gyártási kimenet megadva" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Gyártási kimenet már kész" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "A mennyiség nem lehet több mint a gyártási mennyiség" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Gyártás objektum" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "Gyártás objektum" msgid "Quantity" msgstr "Mennyiség" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Gyártáshoz szükséges mennyiség" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" msgid "Stock Item" msgstr "Készlet tétel" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Beépítés ebbe" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Cél készlet tétel" @@ -1416,7 +1416,7 @@ msgstr "Sorozatszámok automatikus hozzárendelése" msgid "Automatically allocate required items with matching serial numbers" msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1759,7 +1759,7 @@ msgstr "Még nincs lefoglalva a szükséges készlet" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1796,8 +1796,8 @@ msgid "Completed Outputs" msgstr "Befejezett kimenetek" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1847,7 +1847,7 @@ msgstr "Készlet forrás" msgid "Stock can be taken from any available location." msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Cél" @@ -2353,7 +2353,7 @@ msgstr "Kategória paraméter sablonok másolása" msgid "Copy category parameter templates when creating a part" msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2363,7 +2363,7 @@ msgstr "Sablon" msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2374,7 +2374,7 @@ msgstr "Gyártmány" msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Összetevő" @@ -2383,7 +2383,7 @@ msgstr "Összetevő" msgid "Parts can be used as sub-components by default" msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Beszerezhető" @@ -2391,7 +2391,7 @@ msgstr "Beszerezhető" msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Értékesíthető" @@ -2400,7 +2400,7 @@ msgstr "Értékesíthető" msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2411,7 +2411,7 @@ msgstr "Követésre kötelezett" msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2959,558 +2959,566 @@ msgstr "Riport törlési gyakoriság" msgid "Stocktake reports will be deleted after specified number of days" msgstr "Régi leltár riportok törlése hány naponta történjen" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "Függő vevői szállítmányok megjelenítése" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Hírek megjelenítése" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Hírek megjelenítése a főoldalon" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Alapértelmezett címkenyomtató" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Melyik címkenyomtató legyen az alapértelmezett" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Készlet tételek megjelenítése a keresési előnézetben" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Gyártási utasítások keresése" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Vevői rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Visszavétel keresése" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "Visszavételek megjelenítése a keresés előnézet ablakban" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "Inaktív visszavételek kihagyása" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Regex keresés" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "Reguláris kifejezések engedélyezése a keresésekben" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "Teljes szó keresés" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "A keresések csak teljes szóra egyező találatokat adjanak" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "A menü pozíciója mindig rögzítve a lap tetején" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Alkatrész leltár" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Táblázati szöveg hossz" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "Alapértelmezett alkatrész címke sablon" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "Az alapértelmezetten kiválasztott alkatrész címke sablon" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "Alapértelmezett készlet címke sablon" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "Az alapértelmezetten kiválasztott készlet címke sablon" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "Alapértelmezett készlethely címke sablon" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "Az alapértelmezetten kiválasztott készlethely címke sablon" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "Hibariportok fogadása" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "Értesítések fogadása a rendszerhibákról" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "Ársáv mennyiség" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Ár" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Aktív" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Token" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Titok" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Fejléc" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Törzs" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Id" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Cím" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Közzétéve" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Szerző" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Összefoglaló" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Elolvasva" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "Elolvasva?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3520,31 +3528,31 @@ msgstr "Elolvasva?" msgid "Image" msgstr "Kép" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "Képfájl" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "A mértékegységnek valós azonosítónak kell lennie" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "Egység neve" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Szimbólum" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "Opcionális mértékegység szimbólum" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definíció" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "Mértékegység definíció" @@ -3557,19 +3565,28 @@ msgstr "Új {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "Egy új megrendelés létrehozva, és hozzád rendelve" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Készlet érkezett" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Készlet érkezett egy beszerzési megrendeléshez" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "Készlet érkezett vissza egy visszavétel miatt" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Plugin hiba" @@ -3686,7 +3703,7 @@ msgstr "Cég által használt alapértelmezett pénznem" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Cég" @@ -3851,7 +3868,7 @@ msgid "Parameter value" msgstr "Paraméter értéke" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3877,9 +3894,9 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3920,7 +3937,7 @@ msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3930,11 +3947,11 @@ msgstr "Beszállítói alkatrész leírása" msgid "Note" msgstr "Megjegyzés" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "alap költség" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" @@ -3964,7 +3981,7 @@ msgstr "Csomagolási mennyiség" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Egy csomagban kiszállítható mennyiség, hagyd üresen az egyedi tételeknél." -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "többszörös" @@ -4042,8 +4059,8 @@ msgstr "Kép letöltése URL-ről" msgid "Delete image" msgstr "Kép törlése" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4140,7 +4157,7 @@ msgstr "Beszállítói készlet" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Beszerzési rendelések" @@ -4163,7 +4180,7 @@ msgstr "Új beszerzési rendelés" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Vevői rendelések" @@ -4188,7 +4205,7 @@ msgstr "Hozzárendelt készlet" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "Visszavételek" @@ -4404,7 +4421,7 @@ msgstr "Alkatrész elérhetőség frissítése" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Készlet tételek" @@ -4518,11 +4535,11 @@ msgstr "QR kód" msgid "Total Price" msgstr "Teljes ár" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "Nincs egyező beszerzési rendelés" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4536,7 +4553,7 @@ msgstr "Nincs egyező beszerzési rendelés" msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4545,7 +4562,7 @@ msgstr "Beszerzési rendelés" msgid "Return Order" msgstr "Visszavétel" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Ismeretlen" @@ -4573,7 +4590,7 @@ msgstr "Rendelés leírása (opcionális)" msgid "Select project code for this order" msgstr "Válassz projektszámot ehhez a rendeléshez" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Link külső weboldalra" @@ -4597,11 +4614,11 @@ msgstr "Kapcsolattartó ehhez a rendeléshez" msgid "Company address for this order" msgstr "Cég címei ehhez a rendeléshez" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Rendelés azonosító" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Beszerzési rendelés állapota" @@ -4622,15 +4639,15 @@ msgstr "Beszállítói rendelés azonosító kód" msgid "received by" msgstr "érkeztette" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Kiállítás dátuma" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Kiállítás dátuma" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Rendelés teljesítési dátuma" @@ -4638,99 +4655,99 @@ msgstr "Rendelés teljesítési dátuma" msgid "Part supplier must match PO supplier" msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "Mennyiség pozitív kell legyen" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Cég akinek a tételek értékesítésre kerülnek" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Vevői azonosító " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Megrendelés azonosító kódja a vevőnél" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Kiszállítás dátuma" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "szállította" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "A rendelés nem teljesíthető mivel nincs hozzárendelve alkatrész" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "Csak nyitott rendelés jelölhető késznek" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Tétel mennyiség" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Sortétel azonosító" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Sortétel megjegyzései" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "Sortétel leírása (opcionális)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Kontextus" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "További kontextus ehhez a sorhoz" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Egységár" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "törölve" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Rendelés" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Beszállítói alkatrész" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4740,185 +4757,185 @@ msgstr "Beszállítói alkatrész" msgid "Received" msgstr "Beérkezett" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Beszerzési ár" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Beszerzési egységár" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuális alkatrészt nem lehet vevői rendeléshez adni" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Eladási ár" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Eladási egységár" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Szállított mennyiség" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Szállítás dátuma" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Szállítási dátum" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "Kézbesítés dátuma" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Ellenőrizte" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Szállítmány" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Szállítmány száma" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Nyomkövetési szám" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Szállítmány nyomkövetési információ" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Számlaszám" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Hozzátartozó számla referencia száma" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "Szállítmány már elküldve" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "Készlet tétel nincs hozzárendelve" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "Vevői rendelés nem egyezik a szállítmánnyal" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "Szállítmány nem egyezik a vevői rendeléssel" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Sor" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Vevői rendelés szállítmány azonosító" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Tétel" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Válaszd ki a foglalásra szánt készlet tételt" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "Visszavétel azonosító" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "Cég akitől a tételek visszavételre kerülnek" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "Visszavétel állapota" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "Csak szériaszámos tételek rendelhetők visszaszállítási utasításhoz" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "Visszavétel dátuma" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "Mikor lett visszavéve a tétel" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kimenetel" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "Sortétel végső kimenetele" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "Sortétel visszaküldésének vagy javításának költsége" @@ -5462,12 +5479,12 @@ msgstr "A {part} egységára {price}-ra módosítva" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "Alkatrész ID" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Alkatrész neve" @@ -5476,20 +5493,20 @@ msgstr "Alkatrész neve" msgid "Part Description" msgstr "Alkatrész leírása" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Változat" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Kulcsszavak" @@ -5510,11 +5527,11 @@ msgstr "Alapértelmezett készlethely ID" msgid "Default Supplier ID" msgstr "Alapértelmezett beszállító ID" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimális készlet" @@ -5540,11 +5557,11 @@ msgstr "Felhasználva ebben" msgid "Building" msgstr "Gyártásban" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Minimum költség" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Maximum költség" @@ -5568,7 +5585,7 @@ msgstr "Kategória elérési út" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Alkatrészek" @@ -5584,7 +5601,7 @@ msgstr "Alkatrészjegyzék tétel ID" msgid "Parent IPN" msgstr "Szülő IPN" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "Alkatrész IPN" @@ -5626,7 +5643,7 @@ msgstr "Teljes alkatrészjegyzék jóváhagyása" msgid "This option must be selected" msgstr "Ennek az opciónak ki kll lennie választva" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Alapértelmezett hely" @@ -5644,14 +5661,14 @@ msgstr "Elérhető készlet" msgid "Input quantity for price calculation" msgstr "Add meg a mennyiséget az árszámításhoz" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Alkatrész kategóriák" @@ -5713,294 +5730,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrészekre, már létezik ilyen" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik." -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "Alkatrész leírása (opcionális)" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategória" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Belső cikkszám" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Alkatrész mértékegysége" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "Árszámítások gyorstárazásához használt pénznem" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "Minimum alkatrészjegyzék költség" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "Összetevők minimum költsége" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "Maximum alkatrészjegyzék költség" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "Összetevők maximum költsége" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "Minimum beszerzési ár" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "Eddigi minimum beszerzési költség" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "Maximum beszerzési ár" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "Eddigi maximum beszerzési költség" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "Minimum belső ár" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "Minimum költség a belső ársávok alapján" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "Maximum belső ár" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "Maximum költség a belső ársávok alapján" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "Minimum beszállítói ár" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "Minimum alkatrész ár a beszállítóktól" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "Maximum beszállítói ár" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "Maximum alkatrész ár a beszállítóktól" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "Minimum alkatrészváltozat ár" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "Alkatrészváltozatok számolt minimum költsége" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "Maximum alkatrészváltozat ár" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "Alkatrészváltozatok számolt maximum költsége" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "Számított általános minimum költség" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "Számított általános maximum költség" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "Minimum eladási ár" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "Minimum eladási ár az ársávok alapján" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "Maximum eladási ár" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "Maximum eladási ár az ársávok alapján" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "Minimum eladási költség" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "Eddigi minimum eladási ár" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "Maximum eladási költség" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "Eddigi maximum eladási ár" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "Leltározható alkatrész" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "Tételszám" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "Egyedi készlet tételek száma a leltárkor" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "Teljes készlet a leltárkor" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6012,318 +6029,318 @@ msgstr "Teljes készlet a leltárkor" msgid "Date" msgstr "Dátum" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "Leltározva ekkor" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "További megjegyzések" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "Leltározta" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "Minimum készlet érték" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "Becsült minimum raktárkészlet érték" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "Maximum készlet érték" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "Becsült maximum raktárkészlet érték" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Riport" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "Leltár riport fájl (generált)" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Alkatrész szám" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "Leltározott alkatrészek száma" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "Felhasználó aki a leltár riportot kérte" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "Erre az alkatrészre már létezik teszt ilyen névvel" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Kötelező" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "A lehetőségek egyediek kell legyenek" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "Paraméter mértékegysége" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "Paraméter leírása" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Jelölőnégyzet" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "Ez a paraméter egy jelölőnégyzet?" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Lehetőségek" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "Választható lehetőségek (vesszővel elválasztva)" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "Hibás választás a paraméterre" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Adat" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Szint" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Jóváhagyva" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "Ez a BOM tétel jóvá lett hagyva" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Öröklődött" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Változatok" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "1.rész" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "2.rész" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" @@ -6736,7 +6753,7 @@ msgstr "Leltár információ hozzáadása" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Leltár" @@ -7293,72 +7310,99 @@ msgstr "Nincs megadva művelet" msgid "No matching action found" msgstr "Nincs egyező művelet" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "Hiányzó vonalkód adat" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Nincs egyező vonalkód" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Egyezés vonalkódra" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Ez a vonalkód már egy másik tételé" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "Nincs találat a megadott értékre" - -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7378,8 +7422,8 @@ msgstr "Alapvető vonalkód támogatást ad" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "InvenTree fejlesztők" @@ -7481,51 +7525,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7554,7 +7598,7 @@ msgstr "Plugin beállítás" msgid "Plugin Configurations" msgstr "Plugin beállítások" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Kulcs" @@ -7999,7 +8043,7 @@ msgstr "Törlés ha kimerül" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Lejárati dátum" @@ -8007,23 +8051,40 @@ msgstr "Lejárati dátum" msgid "External Location" msgstr "Külső hely" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "Állott" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "Mennyiség megadása kötelező" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "Egy érvényes alkatrészt meg kell adni" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "A megadott beszállítói alkatrész nem létezik" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a use_pack_size flag nincs beállítva" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" @@ -8047,7 +8108,7 @@ msgstr "Készlet hely" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Készlethelyek" @@ -8683,7 +8744,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "Lejárt" @@ -8692,11 +8753,6 @@ msgstr "Lejárt" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "Állott" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "Még nem volt leltározva" @@ -9320,9 +9376,9 @@ msgid "Edit" msgstr "Szerkesztés" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Törlés" @@ -9426,7 +9482,7 @@ msgid "Home Page" msgstr "Főoldal" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9774,7 +9830,7 @@ msgstr "Email cím megerősítése" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Erősítsd meg hogy a %(email)s email a %(user_display)s felhasználó email címe." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Megerősítés" @@ -9975,6 +10031,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10727,7 +10784,7 @@ msgid "No builds matching query" msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11128,40 +11185,40 @@ msgstr "Törlés nem engedélyezett" msgid "View operation not allowed" msgstr "Megtekintés nem engedélyezett" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Form nyitva tartása" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Adj meg egy érvényes számot" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Form hibák vannak" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Nincs eredmény" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Keresés" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Bevitel törlése" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Fájl oszlop" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Mező név" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Oszlopok kiválasztása" @@ -11213,27 +11270,27 @@ msgstr "kiválasztva" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "Címkék nyomtatónak elküldve" @@ -12494,7 +12551,7 @@ msgstr "Kivesz" msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Hozzáad" @@ -13133,7 +13190,7 @@ msgstr "Értesítések megjelenítése" msgid "New Notifications" msgstr "Új értesítések" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "Admin" @@ -13327,7 +13384,7 @@ msgstr "Jogosultságok" msgid "Important dates" msgstr "Fontos dátumok" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13335,67 +13392,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Jogosultságok" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Csoport" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Nézet" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Jogosultság tételek megtekintéséhez" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Jogosultság tételek hozzáadásához" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Módosítás" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Jogosultság tételek szerkesztéséhez" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Jogosultság tételek törléséhez" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 706f134df5..c6d74ba193 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -54,10 +54,10 @@ msgstr "Masukkan tanggal" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Domain surel yang diberikan tidak perbolehkan." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Jumlah yang diberikan tidak valid" @@ -264,10 +264,10 @@ msgstr "Lampiran" msgid "Select file to attach" msgstr "Pilih file untuk dilampirkan" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Pilih file untuk dilampirkan" msgid "Link" msgstr "Tautan" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" @@ -295,13 +295,13 @@ msgstr "Komentar" msgid "File comment" msgstr "Komentar file" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Pengguna" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Nama" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Barcode Hash" msgid "Unique hash of barcode data" msgstr "Hash unik data barcode" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Sudah ada barcode yang sama" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Terjadi Kesalahan Server" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Harus berupa angka yang valid" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Mata Uang" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Nama File" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Nilai tidak valid" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "File data" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Pilih file untuk diunggah" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Jenis file tidak didukung" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Ukuran file terlalu besar" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Tidak ditemukan kolom dalam file" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Tidak ditemukan barisan data dalam file" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Tidak ada barisan data tersedia" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Tidak ada kolom data tersedia" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Kolom yang diperlukan kurang: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Kolom duplikat: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL file gambar external" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Unduhan gambar dari URL external tidak aktif" @@ -710,7 +710,7 @@ msgstr "Dikembalikan" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Tentang InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Order Produksi" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Order Produksi" @@ -991,9 +991,9 @@ msgstr "Pilihan produksi induk tidak valid" msgid "Build Order Reference" msgstr "Referensi Order Produksi" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Produksi induk dari produksi ini" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Kode Kelompok" msgid "Batch code for this build output" msgstr "Kode kelompok untuk hasil produksi ini" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Target tanggal selesai" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Tanggal selesai" @@ -1171,7 +1171,7 @@ msgstr "Pengguna yang menyerahkan order ini" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Tidak ada hasil produksi yang ditentukan" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Hasil produksi sudah selesai" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Hasil produksi tidak sesuai dengan order produksi" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Jumlah" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah ditandai sebagai dapat dilacak" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Item stok teralokasikan terlalu banyak" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Jumlah yang dialokasikan harus lebih dari nol" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Jumlah harus 1 untuk stok dengan nomor seri" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Stok Item" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Sumber stok item" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Jumlah stok yang dialokasikan ke produksi" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Pasang ke" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Tujuan stok item" @@ -1416,7 +1416,7 @@ msgstr "Alokasikan nomor seri secara otomatis" msgid "Automatically allocate required items with matching serial numbers" msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Lokasi hasil pesanan yang selesai" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Item tagihan material" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "Tidak ada tindakan yang ditentukan" msgid "No matching action found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Konfirmasi alamat surel" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Harap konfirmasikan bahwa %(email)s adalah alamat surel untuk pengguna %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Konfirmasi" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 67b7cb420d..95e9371847 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -54,10 +54,10 @@ msgstr "Inserisci la data" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "L'indirizzo di posta elettronica fornito non è approvato." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" @@ -264,10 +264,10 @@ msgstr "Allegato" msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Seleziona file da allegare" msgid "Link" msgstr "Collegamento" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Link a URL esterno" @@ -295,13 +295,13 @@ msgstr "Commento" msgid "File comment" msgstr "Commento del file" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Utente" @@ -342,9 +342,9 @@ msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore" msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Nome" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Codice a Barre" msgid "Unique hash of barcode data" msgstr "Codice univoco del codice a barre" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Trovato codice a barre esistente" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Errore del server" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Deve essere un numero valido" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Selezionare la valuta dalle opzioni disponibili" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Nome del file" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Valore non valido" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "File dati" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Seleziona un file per il caricamento" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Formato file non supportato" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "File troppo grande" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Nessun colonna trovata nel file" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Nessuna riga di dati trovata nel file" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Nessun dato fornito" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Nessuna colonna di dati fornita" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonna richiesta mancante: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonna duplicata: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL del file immagine remota" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Il download delle immagini da URL remoto non è abilitato" @@ -710,7 +710,7 @@ msgstr "Reso" msgid "In Progress" msgstr "In corso" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Informazioni Su InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La produzione deve essere annullata prima di poter essere eliminata" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consumabile" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Ordine di Produzione" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Ordini di Produzione" @@ -991,9 +991,9 @@ msgstr "Scelta non valida per la produzione genitore" msgid "Build Order Reference" msgstr "Riferimento Ordine Di Produzione" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Codice Lotto" msgid "Batch code for this build output" msgstr "Codice del lotto per questa produzione" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Data completamento obiettivo" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Data di completamento" @@ -1171,7 +1171,7 @@ msgstr "Utente che ha emesso questo ordine di costruzione" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "L'ordine di produzione {build} è stato completato" msgid "A build order has been completed" msgstr "L'ordine di produzione è stato completato" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Nessun output di produzione specificato" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "La produzione è stata completata" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "L'output della produzione non corrisponde all'ordine di compilazione" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Quantità" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'elemento di compilazione deve specificare un output poiché la parte principale è contrassegnata come rintracciabile" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Quantità di magazzino da assegnare per la produzione" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Installa in" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" @@ -1416,7 +1416,7 @@ msgstr "Numeri di Serie Assegnazione automatica" msgid "Automatically allocate required items with matching serial numbers" msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "I seguenti numeri di serie sono già esistenti o non sono validi" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "Lo stock non è stato completamente assegnato a questo ordine di produzi #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "Outputs Completati" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Risorse di magazzino" msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destinazione" @@ -2352,7 +2352,7 @@ msgstr "Copia Template Parametri Categoria" msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Modello" msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Assemblaggio" msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Componente" @@ -2382,7 +2382,7 @@ msgstr "Componente" msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Acquistabile" @@ -2390,7 +2390,7 @@ msgstr "Acquistabile" msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendibile" @@ -2399,7 +2399,7 @@ msgstr "Vendibile" msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Tracciabile" msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Mostra articoli sottoscritti" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Mostra gli articoli sottoscritti nella homepage" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Mostra gli ultimi articoli sulla homepage" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Mostra distinta base non convalidata" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Mostra le distinte base che attendono la convalida sulla homepage" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Mostra le modifiche recenti alle giacenze" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Mostra le giacenze modificate di recente nella homepage" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Mostra disponibilità scarsa delle giacenze" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Mostra disponibilità scarsa degli articoli sulla homepage" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Mostra scorte esaurite" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Mostra scorte necessarie" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Mostra scorte esaurite" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Mostra gli articoli stock scaduti nella home page" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Mostra scorte obsolete" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Mostra gli elementi obsoleti esistenti sulla home page" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Mostra produzioni in attesa" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Mostra produzioni in attesa sulla homepage" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Mostra produzioni in ritardo" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Mostra produzioni in ritardo sulla home page" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Mostra ordini di produzione inevasi" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Mostra ordini di produzione inevasi sulla home page" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Mostra Ordini di Produzione in ritardo" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Mostra Ordini di Produzione in ritardo sulla home page" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Mostra Ordini di Vendita inevasi" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Mostra Ordini di Vendita inevasi sulla home page" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Mostra Ordini di Vendita in ritardo" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Mostra Ordini di Vendita in ritardo sulla home page" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Mostra Notizie" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Mostra notizie sulla home page" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Stampante per etichette predefinita" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Cerca Articoli" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Mostra articoli della ricerca nella finestra di anteprima" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Mostra articoli del fornitore nella finestra di anteprima" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Cerca Articoli Produttore" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Mostra articoli del produttore nella finestra di anteprima" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Cerca Categorie" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Cerca Giacenze" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Nascondi elementi non disponibili" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Cerca Ubicazioni" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Cerca Aziende" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Mostra le aziende nella finestra di anteprima di ricerca" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Cerca Ordini Di Produzione" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Cerca Ordini di Acquisto" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Escludi Ordini D'Acquisto Inattivi" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Cerca Ordini Di Vendita" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Escludi Ordini Di Vendita Inattivi" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Cerca Ordini Di Reso" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Ricerca con regex" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Mostra quantità nei moduli" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "Il tasto Esc chiude i moduli" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Utilizzare il tasto Esc per chiudere i moduli modali" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Barra di navigazione fissa" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Formato Data" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Formato predefinito per visualizzare le date" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Programmazione Prodotto" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Mostra informazioni sulla pianificazione del prodotto" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventario Prodotto" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Lunghezza Stringa Tabella" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Limite massimo di lunghezza per le stringhe visualizzate nelle viste della tabella" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "Quantità prezzo limite" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Prezzo" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "Prezzo unitario in quantità specificata" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Scadenza" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Scadenza in cui questa notifica viene ricevuta" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Nome per questa notifica" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Attivo" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "È questa notifica attiva" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Token" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Token per l'accesso" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Segreto" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Segreto condiviso per HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "ID Messaggio" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Identificatore unico per questo messaggio" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Host" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Host da cui questo messaggio è stato ricevuto" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Intestazione" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Intestazione di questo messaggio" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Contenuto" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Contenuto di questo messaggio" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Scadenza in cui questo messaggio è stato ricevuto" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Lavorato il" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "Il lavoro su questo messaggio è terminato?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Id" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titolo" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Pubblicato" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Autore" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Riepilogo" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Letto" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "Queste notizie sull'elemento sono state lette?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "Queste notizie sull'elemento sono state lette?" msgid "Image" msgstr "Immagine" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "File immagine" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "Nuovo {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "Un nuovo ordine è stato creato e assegnato a te" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Elemento ricevuto" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Gli elementi sono stati ricevuti a fronte di un ordine di acquisto" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Errore generato dal plugin" @@ -3685,7 +3702,7 @@ msgstr "Valuta predefinita utilizzata per questa azienda" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Azienda" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Valore del parametro" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "Descrizione articolo fornitore" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "Descrizione articolo fornitore" msgid "Note" msgstr "Nota" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "costo base" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" @@ -3963,7 +3980,7 @@ msgstr "Quantità Confezione" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "multiplo" @@ -4041,8 +4058,8 @@ msgstr "Scarica immagine dall'URL" msgid "Delete image" msgstr "Elimina immagine" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Giacenza Fornitore" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Ordine di acquisto" @@ -4162,7 +4179,7 @@ msgstr "Nuovo Ordine di Acquisto" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Ordini di Vendita" @@ -4187,7 +4204,7 @@ msgstr "Assegna Giacenza" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "Ordini di reso" @@ -4403,7 +4420,7 @@ msgstr "Aggiorna Disponibilità Articolo" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "Prezzo Totale" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "Nessun ordine di acquisto corrispondente trovato" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "Nessun ordine di acquisto corrispondente trovato" msgid "Purchase Order" msgstr "Ordine D'Acquisto" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Ordine D'Acquisto" msgid "Return Order" msgstr "Restituisci ordine" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Sconosciuto" @@ -4572,7 +4589,7 @@ msgstr "Descrizione dell'ordine (opzionale)" msgid "Select project code for this order" msgstr "Seleziona il codice del progetto per questo ordine" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Collegamento a un sito web esterno" @@ -4596,11 +4613,11 @@ msgstr "Punto di contatto per questo ordine" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Riferimento ordine" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Stato ordine d'acquisto" @@ -4621,15 +4638,15 @@ msgstr "Codice di riferimento ordine fornitore" msgid "received by" msgstr "ricevuto da" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Data di emissione" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Data di emissione ordine" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Data ordine completato" @@ -4637,99 +4654,99 @@ msgstr "Data ordine completato" msgid "Part supplier must match PO supplier" msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "La quantità deve essere un numero positivo" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Azienda da cui sono stati ordinati gli elementi" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Riferimento Cliente " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Codice di riferimento Ordine del Cliente" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Data di spedizione" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "spedito da" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "L'ordine non può essere completato perché nessun articolo è stato assegnato" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "Solo un ordine aperto può essere contrassegnato come completo" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Quantità Elementi" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Riferimento Linea Elemento" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Note linea elemento" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Contesto" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Contesto aggiuntivo per questa voce" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Prezzo unitario" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "L'articolo del fornitore deve corrispondere al fornitore" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "eliminato" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Ordine" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "Articolo Fornitore" msgid "Received" msgstr "Ricevuto" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Numero di elementi ricevuti" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Prezzo di Acquisto" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Prezzo di acquisto unitario" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Dove l'Acquirente desidera che questo elemento venga immagazzinato?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Un articolo virtuale non può essere assegnato ad un ordine di vendita" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prezzo di Vendita" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Prezzo unitario di vendita" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Quantità spedita" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Data di spedizione" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Verificato Da" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Utente che ha controllato questa spedizione" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Spedizione" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Numero di spedizione" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Numero di monitoraggio" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Informazioni di monitoraggio della spedizione" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Numero Fattura" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Numero di riferimento per la fattura associata" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "La spedizione è già stata spedita" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "La spedizione non ha articoli di stock assegnati" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "L'elemento di magazzino non è stato assegnato" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Impossibile allocare stock a una riga senza un articolo" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "La quantità deve essere 1 per l'elemento serializzato" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "L'ordine di vendita non corrisponde alla spedizione" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "La spedizione non corrisponde all'ordine di vendita" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Linea" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Riferimento della spedizione ordine di vendita" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Elemento" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Seleziona elemento stock da allocare" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Inserisci la quantità assegnata alla giacenza" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "Seleziona l'elemento da restituire dal cliente" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "Data di ricezione" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Risultati" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "Aggiornato {part} prezzo unitario a {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "Codice Articolo" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Nome Articolo" @@ -5475,20 +5492,20 @@ msgstr "Nome Articolo" msgid "Part Description" msgstr "Descrizione Articolo" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisione" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Parole Chiave" @@ -5509,11 +5526,11 @@ msgstr "Posizione Predefinita ID" msgid "Default Supplier ID" msgstr "ID Fornitore Predefinito" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante Di" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Scorta Minima" @@ -5539,11 +5556,11 @@ msgstr "Utilizzato In" msgid "Building" msgstr "In Costruzione" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Costo Minimo" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Costo Massimo" @@ -5567,7 +5584,7 @@ msgstr "Percorso Categoria" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Articoli" @@ -5583,7 +5600,7 @@ msgstr "ID Elemento Distinta Base" msgid "Parent IPN" msgstr "IPN Principale" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "IPN Articolo" @@ -5625,7 +5642,7 @@ msgstr "Convalida l'intera Fattura dei Materiali" msgid "This option must be selected" msgstr "Questa opzione deve essere selezionata" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Posizione Predefinita" @@ -5643,14 +5660,14 @@ msgstr "Disponibilità in magazzino" msgid "Input quantity for price calculation" msgstr "Digita la quantità per il calcolo del prezzo" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Categorie Articolo" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "Esiste già un elemento stock con questo numero seriale" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "Un articolo con questo Nome, IPN e Revisione esiste già." -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "È Template" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Categoria" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Unita di misura per questo articolo" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Questo articolo può essere costruito da altri articoli?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "Questo articolo può essere utilizzato per costruire altri articoli?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Questo articolo ha il tracciamento per gli elementi unici?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "Somma di controllo Distinta Base" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "Somma di controllo immagazzinata Distinta Base" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "Distinta Base controllata da" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "Data di verifica Distinta Base" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Creazione Utente" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Vendita multipla" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "Valuta utilizzata per calcolare i prezzi" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "Costo Minimo Distinta Base" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "Costo minimo dei componenti dell'articolo" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "Costo Massimo Distinta Base" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "Costo massimo dei componenti dell'articolo" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "Importo Acquisto Minimo" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "Costo minimo di acquisto storico" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "Importo massimo acquisto" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "Costo massimo di acquisto storico" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "Prezzo Interno Minimo" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "Costo minimo basato su interruzioni di prezzo interne" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "Prezzo Interno Massimo" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "Costo massimo basato su interruzioni di prezzo interne" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "Prezzo Minimo Fornitore" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "Prezzo minimo articolo da fornitori esterni" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "Prezzo Massimo Fornitore" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "Variazione di costo minimo" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "Costo minimo calcolato di variazione dell'articolo" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "Massima variazione di costo" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "Costo massimo calcolato di variazione dell'articolo" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "Costo minimo totale calcolato" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "Costo massimo totale calcolato" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "Prezzo Di Vendita Minimo" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "Prezzo Di Vendita Massimo" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "Prezzo storico minimo di vendita" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "Prezzo storico massimo di vendita" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "Articolo per l'inventario" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "Contatore Elemento" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "Numero di scorte individuali al momento dell'inventario" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "Totale delle scorte disponibili al momento dell'inventario" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario" msgid "Date" msgstr "Data" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "Data in cui è stato effettuato l'inventario" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Note aggiuntive" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "Utente che ha eseguito questo inventario" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "Costo Minimo Scorta" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "Costo minimo stimato di magazzino a disposizione" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "Costo Massimo Scorte" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "Costo massimo stimato di magazzino a disposizione" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Report" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "File Report Inventario (generato internamente)" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Conteggio Articolo" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "Numero di articoli oggetto d'inventario" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "Utente che ha richiesto questo report inventario" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "Il modello di prova può essere creato solo per gli articoli rintracciabili" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "Una prova con questo nome esiste già per questo articolo" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nome Test" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Inserisci un nome per la prova" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Inserisci descrizione per questa prova" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Richiesto" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "Questa prova è necessaria per passare?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Valore richiesto" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Allegato Richiesto" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "Il nome del modello del parametro deve essere univoco" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Nome Parametro" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "Descrizione del parametro" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Articolo principale" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Modello Parametro" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Dati" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Valore del Parametro" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Valore Predefinito" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Valore Parametro Predefinito" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "ID articolo o nome articolo" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Valore ID articolo univoco" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Valore IPN articolo" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Livello" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "Livello distinta base" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Distinta base (Bom)" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Seleziona articolo principale" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Articolo subordinato" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Seleziona l'articolo da utilizzare nella Distinta Base" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "Quantità Distinta Base per questo elemento Distinta Base" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Questo elemento della Distinta Base è opzionale" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Eccedenza" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "Riferimento Elemento Distinta Base" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "Note Elemento Distinta Base" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Codice di controllo" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "Codice di controllo Distinta Base" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Convalidato" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "L'articolo subordinato deve essere specificato" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "Elemento Distinta Base Sostituito" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sostituita non può essere la stessa dell'articolo principale" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "Elemento principale Distinta Base" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Sostituisci l'Articolo" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Articolo 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Articolo 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Seleziona Prodotto Relativo" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "Non si può creare una relazione tra l'articolo e sé stesso" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "La relazione duplicata esiste già" @@ -6735,7 +6752,7 @@ msgstr "Aggiungi informazioni inventario" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Inventario" @@ -7292,72 +7309,99 @@ msgstr "Nessuna azione specificata" msgid "No matching action found" msgstr "Nessuna azione corrispondente trovata" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "Codice a barre mancante" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Nessuna corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Il codice a barre corrisponde a un elemento esistente" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "Nessuna corrispondenza trovata per il valore fornito" - -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "Fornisce supporto nativo per codici a barre" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "Contributi d'InvenTree" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "Configurazione Plugin" msgid "Plugin Configurations" msgstr "Configurazioni Plugin" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Key" @@ -7998,7 +8042,7 @@ msgstr "Elimina al esaurimento" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -8006,23 +8050,40 @@ msgstr "Data di Scadenza" msgid "External Location" msgstr "Ubicazione Esterna" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "Obsoleto" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "La quantità è richiesta" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "Deve essere fornita un articolo valido" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile" @@ -8046,7 +8107,7 @@ msgstr "Ubicazione magazzino" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Posizioni magazzino" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Questo Elemento Stock è scaduto il %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "Scaduto" @@ -8691,11 +8752,6 @@ msgstr "Scaduto" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Questo Elemento Stock scade il %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "Obsoleto" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "Nessun inventario eseguito" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "Modifica" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Elimina" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "Home Page" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Conferma l'indirizzo e-mail" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Si prega di confermare che %(email)s è un indirizzo email per l'utente %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Conferma" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "Nessuna produzione corrispondente alla ricerca" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "Operazione di eliminazione non consentita" msgid "View operation not allowed" msgstr "Mostra operazione non consentita" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Mantieni aperto questo modulo" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Inserisci un numero valido" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Esistono errori nel modulo" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Nessun risultato trovato" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Ricerca" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Cancella input" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Colonna File" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Nome del campo" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Seleziona Colonne" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "Etichette inviate alla stampante" @@ -12493,7 +12550,7 @@ msgstr "Prendi" msgid "Add Stock" msgstr "Aggiungi giacenza" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Aggiungi" @@ -13132,7 +13189,7 @@ msgstr "Mostra Notifiche" msgid "New Notifications" msgstr "Nuove Notifiche" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "Amministratore" @@ -13327,7 +13384,7 @@ msgstr "Permessi" msgid "Important dates" msgstr "Date Importanti" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13335,67 +13392,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Impostazione autorizzazioni" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Gruppo" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Visualizza" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Autorizzazione a visualizzare gli articoli" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Autorizzazione ad aggiungere elementi" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Modificare" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Permessi per modificare gli elementi" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 84863c4ef7..1994bad557 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -54,10 +54,10 @@ msgstr "日付を入力する" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "指定されたメールドメインは承認されていません。" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "数量コードが無効です" @@ -264,10 +264,10 @@ msgstr "添付ファイル" msgid "Select file to attach" msgstr "添付ファイルを選択" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "添付ファイルを選択" msgid "Link" msgstr "リンク" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "外部 サイト へのリンク" @@ -295,13 +295,13 @@ msgstr "コメント:" msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "ユーザー" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "お名前" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "ファイル名" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "無効な値です。" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "データファイル" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "アップロードするファイルを選択" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "サポートされていないファイル形式" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "ファイルサイズが大きすぎます" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "ファイルに列が見つかりません" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "ファイルにデータ行がみつかりません" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "データが入力されていません" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "データ列が指定されていません" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "必須の列がありません: {name}" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "{col} 列が重複しています。" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "外部画像ファイルのURL" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "外部URLからの画像ダウンロードは許可されていません" @@ -710,7 +710,7 @@ msgstr "返品済" msgid "In Progress" msgstr "処理中" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "InvenTree について" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "組立注文" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "組立注文" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "数量" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "在庫商品" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "テンプレート" msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "アセンブリ" msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "コンポーネント" @@ -2382,7 +2382,7 @@ msgstr "コンポーネント" msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "購入可能" @@ -2390,7 +2390,7 @@ msgstr "購入可能" msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "販売可能" @@ -2399,7 +2399,7 @@ msgstr "販売可能" msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "追跡可能" msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "非アクティブな部品を非表示" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "購読中の部品を表示" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "購読中のカテゴリを表示" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "在庫商品" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "外部ページへのリンク" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "購入金額" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "キーワード" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "パーツ" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "パーツカテゴリ" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "パーツカテゴリ" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "カテゴリ" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "パーツカテゴリ" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "アクションが指定されていません" msgid "No matching action found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "期限切れ" @@ -8691,11 +8752,6 @@ msgstr "期限切れ" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "確認" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "許可" msgid "Important dates" msgstr "重要な日付" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "パーミッション設定" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "グループ" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "表示" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "項目を表示する権限" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "項目を追加する権限" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "変更" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "項目を編集する権限" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "項目を削除する権限" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 4065589e21..0ab97f64ee 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -54,10 +54,10 @@ msgstr "날짜 입력" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -264,10 +264,10 @@ msgstr "첨부파일" msgid "Select file to attach" msgstr "첨부할 파일을 선택하세요" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "첨부할 파일을 선택하세요" msgid "Link" msgstr "링크" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "외부 URL로 링크" @@ -295,13 +295,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "사용자" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "이름" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "바코드 해시" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "유효한 숫자여야 합니다" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "파일명" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "지원하지 않는 파일 형식" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "파일이 너무 큽니다" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "파일에서 발견된 세로열 없음." -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "파일에서 발견된 가로열 없음" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "데이터 가로열이 제공되지 않음" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "데이터 세로열이 제공되지 않음" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "사라진 필수 세로열: {name}" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL 주소" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "원격 이미지 파일의 URL" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "원격 URL 에서 이미지 다운로드가 활성화되지 않음" @@ -710,7 +710,7 @@ msgstr "" msgid "In Progress" msgstr "진행 중" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "수량 값은 0보다 커야 합니다" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "수량" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "구입 가능" @@ -2390,7 +2390,7 @@ msgstr "구입 가능" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "판매 가능" @@ -2399,7 +2399,7 @@ msgstr "판매 가능" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "작성자" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "이미지" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "회사" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "URL에서 이미지 다운로드" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "데이터" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "키" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "삭제" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "홈페이지" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "확인" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "관리자" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index f77660296f..80d9328f5c 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:28\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -54,10 +54,10 @@ msgstr "Voer datum in" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." msgid "Registration is disabled." msgstr "Registratie is uitgeschakeld." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" @@ -264,10 +264,10 @@ msgstr "Bijlage" msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Bestand als bijlage selecteren" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Link naar externe URL" @@ -295,13 +295,13 @@ msgstr "Opmerking" msgid "File comment" msgstr "Bestand opmerking" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Gebruiker" @@ -342,9 +342,9 @@ msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object" msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Naam" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Hash van Streepjescode" msgid "Unique hash of barcode data" msgstr "Unieke hash van barcode gegevens" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Bestaande barcode gevonden" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Serverfout" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Selecteer valuta uit beschikbare opties" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Bestandsnaam" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Ongeldige waarde" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Data bestand" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Selecteer een bestand om te uploaden" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Niet ondersteund bestandstype" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Bestand is te groot" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Geen kolommen gevonden in het bestand" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Geen data rijen gevonden in dit bestand" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Geen data rijen opgegeven" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Geen gegevenskolommen opgegeven" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Verplichte kolom ontbreekt: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dubbele kolom: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL van extern afbeeldingsbestand" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld" @@ -710,7 +710,7 @@ msgstr "Retour" msgid "In Progress" msgstr "In Behandeling" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Over InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Verbruiksartikelen" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Productieorder" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Productieorders" @@ -991,9 +991,9 @@ msgstr "Ongeldige keuze voor bovenliggende productie" msgid "Build Order Reference" msgstr "Productieorderreferentie" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Batchcode" msgid "Batch code for this build output" msgstr "Batchcode voor deze productieuitvoer" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Verwachte opleveringsdatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Opleveringsdatum" @@ -1171,7 +1171,7 @@ msgstr "Gebruiker die de productieorder heeft gegeven" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Productieorder {build} is voltooid" msgid "A build order has been completed" msgstr "Een productieorder is voltooid" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Geen productie uitvoer opgegeven" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Productie uitvoer is al voltooid" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Productuitvoer komt niet overeen met de Productieorder" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "Hoeveelheid kan niet groter zijn dan aantal" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Bouw object" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "Bouw object" msgid "Quantity" msgstr "Hoeveelheid" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Vereiste hoeveelheid voor bouwopdracht" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid toe te wijzen aan productie" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" @@ -1416,7 +1416,7 @@ msgstr "Serienummers automatisch toewijzen" msgid "Automatically allocate required items with matching serial numbers" msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "De volgende serienummers bestaan al of zijn ongeldig" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Locatie van voltooide productieuitvoeren" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "Voorraad is niet volledig toegewezen aan deze productieorder" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "Voltooide Uitvoeren" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Voorraadbron" msgid "Stock can be taken from any available location." msgstr "Voorraad kan worden genomen van elke beschikbare locatie." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Bestemming" @@ -2352,7 +2352,7 @@ msgstr "Kopiëer Categorieparameter Sjablonen" msgid "Copy category parameter templates when creating a part" msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Sjabloon" msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Samenstelling" msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Component" @@ -2382,7 +2382,7 @@ msgstr "Component" msgid "Parts can be used as sub-components by default" msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Koopbaar" @@ -2390,7 +2390,7 @@ msgstr "Koopbaar" msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Verkoopbaar" @@ -2399,7 +2399,7 @@ msgstr "Verkoopbaar" msgid "Parts are salable by default" msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Volgbaar" msgid "Parts are trackable by default" msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "Rapport Verwijdering Interval" msgid "Stocktake reports will be deleted after specified number of days" msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Verberg inactieve delen bij items op de homepage" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Toon geabonneerde onderdelen" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Toon geabonneerde onderdelen op de homepage" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Toon geabonneerde categorieën" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Toon geabonneerde onderdeel categorieën op de startpagina" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Toon niet-gevalideerde BOM's" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Laat BOMs zien die wachten op validatie op de startpagina" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Toon achterstallige productie" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "Toon in behandeling SO verzendingen" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Nieuws tonen" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Nieuws op de startpagina weergeven" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Inline labelweergave" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Standaard label printer" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Instellen welke label printer standaard moet worden geselecteerd" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Inline rapport weergeven" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Onderdelen weergeven in zoekscherm" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Zoek leveranciersonderdelen" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Leveranciersonderdelen weergeven in zoekscherm" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Fabrikant onderdelen zoeken" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Fabrikant onderdelen weergeven in zoekscherm" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Zoek categorieën" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Toon onderdeelcategorieën in zoekvenster" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Toon voorraad items in zoekvenster" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Verberg niet beschikbare voorraad items" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Locaties doorzoeken" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Toon voorraadlocaties in zoekvenster" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Zoek bedrijven" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Toon bedrijven in zoekvenster" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Zoek Bouworders" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Zoek retourorders" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "Inactieve retourbestellingen weglaten" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "Inactieve retourorders uitsluiten in zoekvenster" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Zoekvoorbeeld resultaten" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Regex zoeken" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "Schakel reguliere expressies in zoekopdrachten in" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "Hele woorden zoeken" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Toon hoeveelheid in formulieren" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "Escape-toets sluit formulieren" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Vaste navigatiebalk" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Datum formaat" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Voorkeursindeling voor weergave van datums" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Onderdeel planning" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Toon informatie voor het plannen van onderdelen" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Voorraadcontrole onderdeel" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Tabel tekenreekslengte" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Limiet tekenreeksen voor het weergegeven in tabelweergaven" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "Standaard sjabloon product onderdeel" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "Het onderdeellabelsjabloon dat automatisch wordt geselecteerd" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "Standaard sjabloon voorraad onderdeel" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "Standaard label van voorraadlocatie" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Prijs" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Eindpunt" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Eindpunt waarop deze webhook wordt ontvangen" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Naam van deze webhook" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Actief" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Is deze webhook actief" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Token" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Geheim" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Gedeeld geheim voor HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Host" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Koptekst" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Aan gewerkt" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "Afbeelding" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "Een nieuwe order is aangemaakt en aan u toegewezen" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Artikelen zijn ontvangen tegen een inkooporder" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Bedrijf" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Parameterwaarde" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "Opmerking" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "basisprijs" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "meerdere" @@ -4041,8 +4058,8 @@ msgstr "Afbeelding downloaden van URL" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Inkooporders" @@ -4162,7 +4179,7 @@ msgstr "Nieuwe Inkooporder" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Verkooporders" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "Beschikbaarheid van onderdeel bijwerken" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Voorraadartikelen" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "Totaalprijs" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "Inkooporder" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Inkooporder" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Link naar externe pagina" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Orderreferentie" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Inkooporder status" @@ -4621,15 +4638,15 @@ msgstr "Order referentiecode van leverancier" msgid "received by" msgstr "ontvangen door" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Datum van uitgifte" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Order uitgegeven op datum" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Order voltooid op datum" @@ -4637,99 +4654,99 @@ msgstr "Order voltooid op datum" msgid "Part supplier must match PO supplier" msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "Hoeveelheid moet een positief getal zijn" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Bedrijf waaraan de artikelen worden verkocht" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Klantreferentie " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Klant order referentiecode" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Verzenddatum" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "verzonden door" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "Order kan niet worden voltooid omdat er geen onderdelen aangewezen zijn" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Hoeveelheid artikelen" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Artikelregel referentie" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Artikel notities" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Context" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Additionele context voor deze regel" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Stukprijs" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "Leveranciersonderdeel moet overeenkomen met leverancier" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "verwijderd" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Order" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Leveranciersonderdeel" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "Leveranciersonderdeel" msgid "Received" msgstr "Ontvangen" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Inkoopprijs" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Aankoopprijs per stuk" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Waar wil de inkoper dat dit artikel opgeslagen wordt?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtueel onderdeel kan niet worden toegewezen aan een verkooporder" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkoopprijs" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Prijs per stuk" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Verzonden hoeveelheid" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Datum van verzending" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Gecontroleerd door" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Gebruiker die deze zending gecontroleerd heeft" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Zending" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Zendingsnummer" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Volgnummer" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Zending volginformatie" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Factuurnummer" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Referentienummer voor bijbehorende factuur" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "Verzending is al verzonden" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "Zending heeft geen toegewezen voorraadartikelen" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "Voorraadartikel is niet toegewezen" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "Verkooporder komt niet overeen met zending" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "Verzending komt niet overeen met verkooporder" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Regel" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Verzendreferentie verkooporder" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Artikel" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Selecteer voorraadartikel om toe te wijzen" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Voer voorraadtoewijzingshoeveelheid in" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "{part} stukprijs bijgewerkt naar {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "Onderdeel-id" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Onderdeel naam" @@ -5475,20 +5492,20 @@ msgstr "Onderdeel naam" msgid "Part Description" msgstr "Onderdeel omschrijving" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Onderdelen" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Standaard locatie" @@ -5643,14 +5660,14 @@ msgstr "Beschikbare Voorraad" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Onderdeel Categorie" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Onderdeel Categorieën" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Onderdeel naam" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Onderdeel Categorie" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Intern Onderdeelnummer" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Standaardleverancier" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Eenheden voor dit onderdeel" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "Onderdeel voor voorraadcontrole" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "Datum" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Aantal onderdelen" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Parameter Template" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Stuklijstartikel" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "Geen actie gespecificeerd" msgid "No matching action found" msgstr "Geen overeenkomende actie gevonden" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Geen overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "Voorraadlocatie" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Voorraadlocaties" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Verwijderen" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "Startpagina" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Bevestigen" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index ff602d9382..ea7ff44755 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -32,7 +32,7 @@ msgstr "Ingen verdi angitt" #: InvenTree/conversion.py:125 #, python-brace-format msgid "Could not convert {original} to {unit}" -msgstr "" +msgstr "Kunne ikke konvertere {original} til {unit}" #: InvenTree/conversion.py:127 msgid "Invalid quantity supplied" @@ -54,10 +54,10 @@ msgstr "Oppgi dato" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Det oppgitte e-postdomenet er ikke godkjent." msgid "Registration is disabled." msgstr "Registrering er deaktivert." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" @@ -264,10 +264,10 @@ msgstr "Vedlegg" msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Velg fil å legge ved" msgid "Link" msgstr "Lenke" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Lenke til ekstern URL" @@ -295,13 +295,13 @@ msgstr "Kommentar" msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Bruker" @@ -342,9 +342,9 @@ msgstr "Duplikatnavn kan ikke eksistere under samme overordnede" msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Navn" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Strekkode-hash" msgid "Unique hash of barcode data" msgstr "Unik hash av strekkodedata" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Eksisterende strekkode funnet" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Serverfeil" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "En feil har blitt logget av serveren." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Må være et gyldig tall" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Velg valuta ut fra tilgjengelige alternativer" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Filnavn" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Ugyldig verdi" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Velg datafil for opplasting" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Filtypen støttes ikke" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Ingen kolonner funnet i filen" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Ingen datarader funnet i fil" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Ingen datarader oppgitt" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Ingen datakolonner angitt" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrevd kolonne: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dupliaktkolonne: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URLtil ekstern bildefil" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert" @@ -710,7 +710,7 @@ msgstr "Returnert" msgid "In Progress" msgstr "Pågående" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Bygningen må avbrytes før den kan slettes" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Forbruksvare" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Build ordre" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Build Ordre" @@ -991,9 +991,9 @@ msgstr "Ugylding valg for overordnet build" msgid "Build Order Reference" msgstr "Bygg ordrereferanse" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Build order som denne build er tildelt til" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Batchkode" msgid "Batch code for this build output" msgstr "Batchkode for denne produksjonsartikkelen" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Forventet sluttdato" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Fullført dato" @@ -1171,7 +1171,7 @@ msgstr "Brukeren som utstede denne prosjekt order" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Byggeordre {build} er fullført" msgid "A build order has been completed" msgstr "Byggeordre er fullført" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Ingen prosjekt utgang" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Prosjekt utdata er allerede utfylt" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "Kvantitet kan ikke være større enn utgangsantallet" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Bygg objekt" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "Bygg objekt" msgid "Quantity" msgstr "Antall" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Påkrved kvantitet for ordre" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Prosjektvare må spesifisere en prosjekt utdata, siden hovedvaren er markert som sporbar" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Lagervaren er overtildelt" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Tildelingsantall må være større enn null" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Mengden må være 1 for serialisert lagervare" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" msgid "Stock Item" msgstr "Lagervare" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Kildelagervare" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Lagerantall å tildele til produksjonen" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Monteres i" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Lagervare for montering" @@ -1416,7 +1416,7 @@ msgstr "Automatisk tildeling av serienummer" msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Følgende serienummer finnes allerede eller er ugyldige" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Plassering for ferdige produksjonsartikler" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "Lagerbeholdning er ikke fullt tildelt til denne Produksjonsordren" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "Fullførte byggeresultater" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Lagerkilde" msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige steder." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destinasjon" @@ -2352,7 +2352,7 @@ msgstr "Kopier designmaler for kategoriparametere" msgid "Copy category parameter templates when creating a part" msgstr "Kopier parametermaler for kategori ved oppretting av en del" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Mal" msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Sammenstilling" msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponent" @@ -2382,7 +2382,7 @@ msgstr "Komponent" msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Kjøpbar" @@ -2390,7 +2390,7 @@ msgstr "Kjøpbar" msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Salgbar" @@ -2399,7 +2399,7 @@ msgstr "Salgbar" msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Sporbar" msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "Rapportslettingsintervall" msgid "Stocktake reports will be deleted after specified number of days" msgstr "Varetellingsrapporter vil slettes etter angitt antall dager" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Skjul inaktive elementer" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Vis abonnerte deler" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Vis abonnerte deler på startsiden" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Vis abonnerte kategorier" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Vis abonnerte delkatekorier på startsiden" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på startsiden" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Vis uvaliderte stykklister" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Vis stykklister som venter på validering på startsiden" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endrede lagervarer på startsiden" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Vis lav lagerbeholdning" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Vis lave lagervarer på startsiden" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Vis tomme lagervarer" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Vis tom lagerbeholdning på startsiden" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Vis nødvendig lagerbeholdning" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Vis lagervarer som trengs for produksjon på startsiden" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Vis utløpt lagerbeholdning" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Vis utløpte lagervarer på startsiden" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Vis foreldet lagerbeholdning" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Vis foreldet lagerbeholdning på startsiden" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Vis ventende produksjoner" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Vi ventende produksjoner på startsiden" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Vis forfalte produksjoner" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Vis forfalte produksjoner på startsiden" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Vis utestående Innkjøpsordrer" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Vis utestående Innkjøpsordrer på startsiden" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Vis forfalte Innkjøpsordrer" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Vis forfalte Innkjøpsordrer på startsiden" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Vis utestående Salgsordrer" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Vis utestående Salgsordrer på startsiden" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Vis forfalte SOer" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Vis forfalte SOer på startsiden" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "Vis ventende SO-forsendelser" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "Vis ventende SO-forsendelser på startsiden" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Vis Nyheter" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Vis nyheter på startsiden" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Innebygd etikettvisning" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Standard etikettskriver" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Innebygd rapportvisning" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Søk i Deler" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Vis deler i forhåndsvsningsvinduet for søk" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Søk i Leverandørdeler" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Søk i Produsentdeler" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Skjul Inaktive Deler" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Søk i kategorier" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Søk i lagerbeholdning" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Skjul utilgjengelige Lagervarer" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Søk i Plasseringer" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Søk i Firma" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Vis firma i forhåndsvsningsvinduet for søk" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Søk i Produksjonsordrer" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Søk i Innkjøpsordrer" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Ekskluder inaktive Innkjøpsordrer" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Søk i Salgsordrer" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Ekskluder Inaktive Salgsordrer" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Søk i Returordrer" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "Vis returordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "Ekskluder Inaktive Returordrer" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Forhåndsvisning av søkeresultater" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Regex-søk" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "Aktiver regulære uttrykk i søkeord" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "Helordsøk" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "Søk returnerer resultater for treff med hele ord" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Vis antall i skjemaer" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Vis antall tilgjengelige deler i noen skjemaer" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "Escape-knappen lukker skjemaer" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Bruk Escape-knappen for å lukke modal-skjemaer" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Fast navigasjonsbar" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Datoformat" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Foretrukket format for å vise datoer" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Delplanlegging" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Vis delplanleggingsinformasjon" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Lagertelling for Del" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Tabellstrenglengde" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Maksimal lengdegrense for strenger vist i tabeller" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "Standard del etikett mal" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "Del etikett malen skal velges automatsik" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "Standard lagervarer mal" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "Lagervarer etikett mal skal valges automatisk" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "Standard lagervarer lokasjon etikett mal" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "Lagervarer lokasjon etikett malen skal valges automatisk" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "Antall for prisbrudd" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Pris" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "Enhetspris på spesifisert antall" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Endepunkt" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Endepunktet hvor denne webhooken er mottatt" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Navn for webhooken" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Aktiv" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Er webhooken aktiv" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Sjetong" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Vert" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Verten denne meldingen ble mottatt fra" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Tittel" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Innholdet i meldingen" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Endepunktet meldingen ble mottatt fra" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Id" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tittel" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Publisert" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Forfatter" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Sammendrag" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Les" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "Er dette nyhetselementet lest?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "Er dette nyhetselementet lest?" msgid "Image" msgstr "Bilde" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "Bildefil" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definisjon" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "Enhets definisjon" @@ -3556,19 +3564,28 @@ msgstr "Ny {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "En ny ordre har blitt opprettet og tilordnet til deg" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Artikler mottatt" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Artikler har blitt mottatt mot en innkjøpsordre" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "Artikler har blitt mottatt mot en returordre" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Feil oppstått i utvidelse" @@ -3685,7 +3702,7 @@ msgstr "Standardvaluta brukt for dette firmaet" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Firma" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Parameterverdi" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "Leverandørens delbeskrivelse" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "Leverandørens delbeskrivelse" msgid "Note" msgstr "Notat" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "grunnkostnad" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift på lager)" @@ -3963,7 +3980,7 @@ msgstr "Pakkeantall" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Totall antall pakket i en enkelt pakke. La stå tomt for enkeltgjenstander." -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "flere" @@ -4041,8 +4058,8 @@ msgstr "Last ned bilde fra URL" msgid "Delete image" msgstr "Slett bilde" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Leverandørs lagerbeholdning" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Innkjøpsordrer" @@ -4162,7 +4179,7 @@ msgstr "Ny innkjøpsordre" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Salgsordre" @@ -4187,7 +4204,7 @@ msgstr "Tildelt lagerbeholdning" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "Returordrer" @@ -4403,7 +4420,7 @@ msgstr "Oppdater Delens Tilgjengelighet" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Lagervarer" @@ -4517,11 +4534,11 @@ msgstr "QR-kode" msgid "Total Price" msgstr "Total pris" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "Ingen samsvarende innkjøpsordre funnet" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "Ingen samsvarende innkjøpsordre funnet" msgid "Purchase Order" msgstr "Innkjøpsordre" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Innkjøpsordre" msgid "Return Order" msgstr "Returordre" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Ukjent" @@ -4572,7 +4589,7 @@ msgstr "Ordrebeskrivelse (valgfritt)" msgid "Select project code for this order" msgstr "Velg prosjektkode for denne ordren" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Lenke til ekstern side" @@ -4596,11 +4613,11 @@ msgstr "Kontaktpunkt for denne ordren" msgid "Company address for this order" msgstr "Bedriftsadresse for denne ordren" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Ordrereferanse" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Status for innkjøpsordre" @@ -4621,15 +4638,15 @@ msgstr "Leverandør ordrereferanse" msgid "received by" msgstr "mottatt av" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Utgivelsesdato" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Dato bestilling ble sendt" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Dato ordre ble fullført" @@ -4637,99 +4654,99 @@ msgstr "Dato ordre ble fullført" msgid "Part supplier must match PO supplier" msgstr "Delleverandør må matche PO-leverandør" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "Mengde må være positiv" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Firma som varene selges til" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Kundereferanse " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Kundens ordrereferanse" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Leveringsdato" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "sendt av" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "Bestillingen kan ikke fullføres da ingen deler er tilordnet" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "Kun en åpen ordre kan merkes som fullført" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige varepartier" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Antall" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Linje referanse" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Linje notat" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "Linjeelementbeskrivelse (valgfritt)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Kontekst" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Ytterligere kontekst for denne linjen" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Enhetspris" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "Delens leverandør må samsvare med leverandør" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "slettet" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Ordre" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Leverandørdel" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "Leverandørdel" msgid "Received" msgstr "Mottatt" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Antall enheter mottatt" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Innkjøpspris" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Enhet-innkjøpspris" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Hvor vil innkjøper at artikkelen skal lagres?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuell del kan ikke tildeles salgsordre" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Kun salgbare deler kan tildeles en salgsordre" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Salgspris" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Enhets-salgspris" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Sendt antall" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Dato for forsendelse" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Leveringsdato" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "Dato for levering av forsendelse" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Sjekket Av" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Brukeren som sjekket forsendelsen" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Forsendelse" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Forsendelsesnummer" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Sporingsnummer" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Sporingsinformasjon for forsendelse" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Referansenummer for tilknyttet faktura" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "Forsendelsen er allerede sendt" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "Forsendelsen har ingen tildelte lagervarer" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "Lagervarer er ikke blitt tildelt" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan ikke tildele lagervare til en linje med annen del" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "Antall må være 1 for serialisert lagervare" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "Salgsordre samsvarer ikke med forsendelse" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "Forsendelsen samsvarer ikke med salgsordre" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Linje" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Forsendelsesreferanse for salgsordre" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Artikkel" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Velg lagervare å tildele" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Angi lagertildelingsmengde" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "Returordre-referanse" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "Firmaet delen skal returneres fra" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "Returordrestatus" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "Kun serialiserte artikler kan tilordnes en Returordre" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "Velg artikkel som skal returneres fra kunde" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "Mottatt Dato" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "Datoen denne returartikkelen ble mottatt" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Utfall" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "Utfall for dette linjeelementet" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet" @@ -5461,12 +5478,12 @@ msgstr "Oppdaterte {part} enhetspris to {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "Del-ID" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Delnavn" @@ -5475,20 +5492,20 @@ msgstr "Delnavn" msgid "Part Description" msgstr "Delbeskrivelse" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisjon" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Nøkkelord" @@ -5509,11 +5526,11 @@ msgstr "Standard posisjons-ID" msgid "Default Supplier ID" msgstr "Standard leverandør ID" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variant av" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimum lagervare" @@ -5539,11 +5556,11 @@ msgstr "Brukt i" msgid "Building" msgstr "Produseres" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Minimum kostnad" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Maksimum kostnad" @@ -5567,7 +5584,7 @@ msgstr "Sti til kategori" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Deler" @@ -5583,7 +5600,7 @@ msgstr "BOM artikkel-ID" msgid "Parent IPN" msgstr "Overodnet IPN" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "Del IPN" @@ -5625,7 +5642,7 @@ msgstr "Godkjenn hele Stykklisten" msgid "This option must be selected" msgstr "Dette alternativet må være valgt" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Standard plassering" @@ -5643,14 +5660,14 @@ msgstr "Tilgjengelig lagerbeholdning" msgid "Input quantity for price calculation" msgstr "Sett inn antall for prisberegning" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Delkategori" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Delkategorier" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "Lagervare med dette serienummeret eksisterer allerede" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "Duplikat av internt delnummer er ikke tillatt i delinnstillinger" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede." -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "Deler kan ikke tilordnes strukturelle delkategorier!" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Delnavn" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Er Mal" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Er delen en maldel?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Er delen en variant av en annen del?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "Delbeskrivelse (valgfritt)" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Del-nøkkelord for å øke synligheten i søkeresultater" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategori" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Delkategori" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Internt delnummer" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Delrevisjon eller versjonsnummer" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "Hvor er denne artikkelen vanligvis lagret?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Standard leverandør" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Standard leverandørdel" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Standard utløp" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Utløpstid (i dager) for lagervarer av denne delen" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Minimum tillatt lagernivå" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Måleenheter for denne delen" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Kan denne delen bygges fra andre deler?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "Kan denne delen brukes til å bygge andre deler?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Har denne delen sporing av unike artikler?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Kan denne delen kjøpes inn fra eksterne leverandører?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Kan denne delen selges til kunder?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Er denne delen aktiv?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "Er dette en virtuell del, som et softwareprodukt eller en lisens?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "Kontrollsum for BOM" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "Lagret BOM-kontrollsum" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "Stykkliste sjekket av" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "Stykkliste sjekket dato" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Opprettingsbruker" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Siste lagertelling" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Selg flere" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "Valuta som brukes til å bufre prisberegninger" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "Minimal BOM-kostnad" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "Minste kostnad for komponentdeler" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "Maksimal BOM-kostnad" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "Maksimal kostnad for komponentdeler" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "Minimal innkjøpskostnad" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "Minimal historisk innkjøpskostnad" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "Maksimal innkjøpskostnad" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "Maksimal historisk innkjøpskostnad" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "Minimal intern pris" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "Minimal kostnad basert på interne prisbrudd" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "Maksimal intern pris" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "Maksimal kostnad basert på interne prisbrudd" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "Minimal leverandørpris" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "Minimumspris for del fra eksterne leverandører" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "Maksimal leverandørpris" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "Maksimalpris for del fra eksterne leverandører" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "Minimal Variantkostnad" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "Beregnet minimal kostnad for variantdeler" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "Maksimal Variantkostnad" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "Beregnet maksimal kostnad for variantdeler" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "Beregnet samlet minimal kostnad" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "Beregnet samlet maksimal kostnad" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "Minimal salgspris" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "Minimal salgspris basert på prisbrudd" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "Maksimal Salgspris" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "Maksimal salgspris basert på prisbrudd" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "Minimal Salgskostnad" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "Minimal historisk salgspris" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "Maksimal Salgskostnad" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "Maksimal historisk salgspris" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "Del for varetelling" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "Antall" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" msgid "Date" msgstr "Dato" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "Dato for utført lagertelling" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Flere notater" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "Bruker som utførte denne lagertellingen" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "Minimal lagerkostnad" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "Estimert minimal kostnad for lagerbeholdning" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "Maksimal lagerkostnad" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "Estimert maksimal kostnad for lagerbeholdning" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Rapport" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "Lagertellingsrapportfil (generert internt)" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Antall deler" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "Antall deler dekket av varetellingen" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "Bruker som forespurte varetellingsrapporten" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "Testmaler kan bare bli opprettet for sporbare deler" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "Test med dette navnet finnes allerede for denne delen" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Testnavn" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Angi et navn for testen" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Testbeskrivelse" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Legg inn beskrivelse for denne testen" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Påkrevd" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "Er det påkrevd at denne testen bestås?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Krever verdi" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "Krever denne testen en verdi når det legges til et testresultat?" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Krever vedlegg" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "Avmerkingsboks parameter kan ikke ha enheter" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "Avmerkingsboks parameter kan ikke har valg" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "Valg må være unikt" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "Navn på parametermal må være unikt" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Parameternavn" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "Fysisk enheter for denne parameteren" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "Parameterbeskrivelse" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Avmerkingsboks" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "Er dette parameteret en avmerkingsboks?" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Valg" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gyldige valg for denne parameteren (kommaseparert)" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "Ugyldig valg for parameterverdi" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Overordnet del" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Parametermal" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Data" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Parameterverdi" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Standardverdi" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Standard Parameterverdi" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "Del-ID eller delnavn" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Unik del-ID-verdi" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Delens interne delnummerverdi" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Nivå" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "BOM-nivå" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "BOM-artikkel" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Velg overordnet del" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Underordnet del" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Velg del som skal brukes i BOM" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "BOM-antall for denne BOM-artikkelen" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Denne BOM-artikkelen er valgfri" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Svinn" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Forventet produksjonssvinn (absolutt eller prosent)" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "BOM-artikkelreferanse" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "BOM-artikkelnotater" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Kontrollsum" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "BOM-linje kontrollsum" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Godkjent" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "Denne BOM-artikkelen er godkjent" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Arves" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Tillat Varianter" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "Antall må være heltallsverdi for sporbare deler" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "Underordnet del må angis" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "BOM-artikkel erstatning" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "Erstatningsdel kan ikke være samme som hoveddelen" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "Overordnet BOM-artikkel" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Erstatningsdel" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Del 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Del 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Velg relatert del" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "Duplikatforhold eksisterer allerede" @@ -6735,7 +6752,7 @@ msgstr "Legg til lagertellingsinformasjon" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Lagertelling" @@ -7292,72 +7309,99 @@ msgstr "Ingen handling spesifisert" msgid "No matching action found" msgstr "Ingen samsvarende handling funnet" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "Mangler strekkodedata" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Ingen treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Strekkode samsvarer med ekisterende element" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "Ingen samsvar funnet for angitt verdi" - -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "Gir innebygd støtte for strekkoder" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "InvenTree-bidragsytere" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "Plugin konfigurasjon" msgid "Plugin Configurations" msgstr "Plugin konfigurasjoner" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Nøkkel" @@ -7998,7 +8042,7 @@ msgstr "Slett når oppbrukt" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Utløpsdato" @@ -8006,23 +8050,40 @@ msgstr "Utløpsdato" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "Foreldet" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "Antall kreves" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "Gyldig del må oppgis" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "Oppgitt leverandørdel eksisterer ikke" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack_size\" er ikke satt" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienumre kan ikke angis for en ikke-sporbar del" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Denne lagervaren utløp %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "Utløpt" @@ -8691,11 +8752,6 @@ msgstr "Utløpt" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Denne lagervaren utløper %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "Foreldet" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "Ingen lagertelling utført" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Slett" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Bekreft e-postadresse" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Vennligst bekreft at %(email)s er ne e-postadresse for bruker %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Bekreft" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "Slett-operasjon ikke tillatt" msgid "View operation not allowed" msgstr "Vis-operasjon ikke tillatt" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Holde dette skjemaet åpent" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Angi et gyldig nummer" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Skjemafeil eksisterer" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Ingen resultater funnet" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Søker" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Tøm inndata" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Filkolonne" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Feltnavn" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Velg Kolonner" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index c87a7542a7..95c58eac2e 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -54,10 +54,10 @@ msgstr "Wprowadź dane" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Podany e-mail domeny nie został zatwierdzony." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" @@ -264,10 +264,10 @@ msgstr "Załącznik" msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Wybierz plik do załączenia" msgid "Link" msgstr "Łącze" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" @@ -295,13 +295,13 @@ msgstr "Komentarz" msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Użytkownik" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Nazwa" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Hasz kodu kreskowego" msgid "Unique hash of barcode data" msgstr "Unikalny hasz danych kodu kreskowego" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Znaleziono istniejący kod kreskowy" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Błąd serwera" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Waluta" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Nazwa pliku" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Nieprawidłowa wartość" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Plik danych" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Wybierz plik danych do przesłania" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Nieobsługiwany typ pliku" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Plik jest zbyt duży" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Nie znaleziono kolumn w pliku" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Nie znaleziono wierszy danych w pliku" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Nie podano wierszy danych" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Nie podano kolumn danych" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Brakuje wymaganej kolumny: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Zduplikowana kolumna: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "Adres URL zdalnego pliku obrazu" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone" @@ -710,7 +710,7 @@ msgstr "Zwrócone" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Zlecenie Budowy" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Zlecenia budowy" @@ -991,9 +991,9 @@ msgstr "Nieprawidłowy wybór kompilacji nadrzędnej" msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Kod partii" msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Docelowy termin zakończenia" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Data zakończenia" @@ -1171,7 +1171,7 @@ msgstr "Użytkownik, który wydał to zamówienie" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Kolejność kompilacji {build} została zakończona" msgid "A build order has been completed" msgstr "Kolejność kompilacji została zakończona" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Nie określono danych wyjściowych budowy" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Budowanie wyjścia jest już ukończone" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Ilość" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Przeznaczenie" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Szablon" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Złożenie" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponent" @@ -2382,7 +2382,7 @@ msgstr "Komponent" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Możliwość zakupu" @@ -2390,7 +2390,7 @@ msgstr "Możliwość zakupu" msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Możliwość sprzedaży" @@ -2399,7 +2399,7 @@ msgstr "Możliwość sprzedaży" msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Możliwość śledzenia" msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Format daty" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Cena" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Aktywny" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Sekret" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Zawartość" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Autor" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "Obraz" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Firma" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "Uwaga" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "wielokrotność" @@ -4041,8 +4058,8 @@ msgstr "Pobierz obraz z adresu URL" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Zapasy dostawcy" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Zamówienia zakupu" @@ -4162,7 +4179,7 @@ msgstr "Nowe zamówienie zakupu" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Towary" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "Cena całkowita" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Zlecenie zakupu" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Link do zewnętrznej witryny" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Status zamówienia zakupu" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "odebrane przez" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Data wydania" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Data wystawienia zamówienia" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "Wartość musi być liczbą dodatnią" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Zamówienie" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "Odebrane" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Wysłana ilość" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Data wysyłki" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Sprawdzone przez" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Użytkownik, który sprawdził tę wysyłkę" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Przesyłka" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Numer przesyłki" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Numer śledzenia" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Informacje o śledzeniu przesyłki" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "Przesyłka została już wysłana" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Linia" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Komponent" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "ID komponentu" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Nazwa komponentu" @@ -5475,20 +5492,20 @@ msgstr "Nazwa komponentu" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Wersja" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Słowa kluczowe" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Wariant" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" @@ -5539,11 +5556,11 @@ msgstr "Użyte w" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "Ścieżka kategorii" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Części" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "IPN komponentu" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "Ta opcja musi być zaznaczona" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Domyślna lokalizacja" @@ -5643,14 +5660,14 @@ msgstr "Dostępna ilość" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Kategorie części" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Nazwa komponentu" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Czy szablon" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Czy ta część stanowi szablon części?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategoria" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Domyślne wygasanie" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:971 +#: part/models.py:939 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:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "Data" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Wymagane" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Dane" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Poziom" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Element BOM" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Zatwierdzone" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Część 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Część 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "Nie określono działania" msgid "No matching action found" msgstr "Nie znaleziono pasującej akcji" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Nie znaleziono wyników dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Znaleziono wyniki dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "Konfiguracja wtyczki" msgid "Plugin Configurations" msgstr "Konfiguracja wtyczek" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Klucz" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Data ważności" @@ -8006,23 +8050,40 @@ msgstr "Data ważności" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "Termin minął" @@ -8691,11 +8752,6 @@ msgstr "Termin minął" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Usuń" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "Strona główna" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Potwierdź adres e-mail" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Proszę potwierdzić że %(email)s jest adresem e-mail dla użytkownika %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Potwierdź" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "Operacja usuwania nie jest dozwolona" msgid "View operation not allowed" msgstr "Operacja przeglądania nie jest dozwolona" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Pozostaw ten formularz otwarty" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Wprowadź poprawny numer" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Istnieją błędy formularza" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Nie znaleziono wyników" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Wyszukiwanie" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Wyczyść wejście" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Kolumna pliku" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Nazwa pola" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Wybór Kolumn" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "Weź" msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Dodaj" @@ -13132,7 +13189,7 @@ msgstr "Pokaż powiadomienia" msgid "New Notifications" msgstr "Nowe powiadomienia" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "Uprawnienia" msgid "Important dates" msgstr "Ważne daty" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Uprawnienia nadane" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Grupa" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Widok" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Uprawnienie do wyświetlania przedmiotów" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Uprawnienie do dodawania przedmiotów" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Zmień" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Uprawnienie do edycji przedmiotów" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index aeff1a1b29..db909d5869 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -54,10 +54,10 @@ msgstr "Insira uma Data" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "O domínio de e-mail providenciado não foi aprovado." msgid "Registration is disabled." msgstr "Cadastro está desativado." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Quantidade fornecida inválida" @@ -264,10 +264,10 @@ msgstr "Anexo" msgid "Select file to attach" msgstr "Selecione arquivo para anexar" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Selecione arquivo para anexar" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Link para URL externa" @@ -295,13 +295,13 @@ msgstr "Comentario" msgid "File comment" msgstr "Comentario sobre arquivo" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Usuario" @@ -342,9 +342,9 @@ msgstr "Nomes duplicados não podem existir sob o mesmo parental" msgid "Invalid choice" msgstr "Escolha inválida" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Nome" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Hash de código de barras" msgid "Unique hash of barcode data" msgstr "Hash exclusivo de dados de código de barras" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Erro de servidor" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Preicsa ser um numero valido" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Moeda" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Selecione a Moeda nas opções disponíveis" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Nome do arquivo" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Arquivo de dados" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Selecione um arquivo de dados para enviar" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Tipo de arquivo não suportado" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "O arquivo é muito grande" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Nenhuma coluna encontrada no arquivo" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Nenhuma linha de dados encontrada no arquivo" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Nenhuma linha de dados fornecida" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Nenhuma coluna de dados fornecida" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta a coluna obrigatória: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Coluna duplicada: \"{col}\"" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "Endereço da URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL do arquivo de imagem remoto" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Baixar imagens de URL remota não está habilitado" @@ -710,7 +710,7 @@ msgstr "Retornado" msgid "In Progress" msgstr "Em Progresso" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Sobre o InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produção deve ser cancelada antes de ser deletada" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consumível" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Ondem de Produção" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Ordens de Produções" @@ -991,9 +991,9 @@ msgstr "Escolha de Produção parental inválida" msgid "Build Order Reference" msgstr "Referência do pedido de produção" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Pedido de produção para qual este serviço está alocado" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Código de Lote" msgid "Batch code for this build output" msgstr "Código do lote para esta saída de produção" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Data alvo final" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data alvo para finalização de produção. Estará atrasado a partir deste dia." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Data de conclusão" @@ -1171,7 +1171,7 @@ msgstr "Usuário que emitiu este pedido de produção" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "O Pedido de produção {build} foi concluído!" msgid "A build order has been completed" msgstr "Um pedido de produção foi concluído" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Nenhuma saída de produção especificada" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Saída de produção já completada" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Saída da produção não corresponde ao Pedido de Produção" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Quantidade deve ser maior que zero" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "Quantidade não pode ser maior do que a quantidade de saída" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Objeto de produção" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "Objeto de produção" msgid "Quantity" msgstr "Quantidade" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Quantidade necessária para o pedido de produção" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item de produção deve especificar a saída, pois peças mestres estão marcadas como rastreáveis" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "O item do estoque está sobre-alocado" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Quantidade alocada deve ser maior que zero" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Quantidade deve ser 1 para estoque serializado" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "Item estoque selecionado não coincide com linha da LDM" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "Item estoque selecionado não coincide com linha da LDM" msgid "Stock Item" msgstr "Item de estoque" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Origem do item em estoque" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Quantidade do estoque para alocar à produção" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Instalar em" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Destino do Item do Estoque" @@ -1416,7 +1416,7 @@ msgstr "Alocar Números de Série Automaticamente" msgid "Automatically allocate required items with matching serial numbers" msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Os seguintes números de série já existem ou são inválidos" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Local para saídas de produção concluídas" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "Estoque não foi totalmente alocado para este Pedido de Produção" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "Saídas Concluídas" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Origem do estoque" msgid "Stock can be taken from any available location." msgstr "O estoque pode ser tirado de qualquer local disponível." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destino" @@ -2352,7 +2352,7 @@ msgstr "Copiar Parâmetros dos Modelos de Categoria" msgid "Copy category parameter templates when creating a part" msgstr "Copiar parâmetros do modelo de categoria quando criar uma peça" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Modelo" msgid "Parts are templates by default" msgstr "Peças são modelos por padrão" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Montagem" msgid "Parts can be assembled from other components by default" msgstr "Peças podem ser montadas a partir de outros componentes por padrão" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Componente" @@ -2382,7 +2382,7 @@ msgstr "Componente" msgid "Parts can be used as sub-components by default" msgstr "Peças podem ser usadas como sub-componentes por padrão" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Comprável" @@ -2390,7 +2390,7 @@ msgstr "Comprável" msgid "Parts are purchaseable by default" msgstr "Peças são compráveis por padrão" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendível" @@ -2399,7 +2399,7 @@ msgstr "Vendível" msgid "Parts are salable by default" msgstr "Peças vão vendíveis por padrão" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Rastreável" msgid "Parts are trackable by default" msgstr "Peças vão rastreáveis por padrão" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "Intervalo para Excluir o Relatório" msgid "Stocktake reports will be deleted after specified number of days" msgstr "Relatórios de balanço serão apagados após um número de dias especificado" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Ocultar peças inativas" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar peças inativas nos resultados exibidos na página inicial" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Mostrar peças subscritas" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Mostrar peças subscritas na tela inicial" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Mostrar categorias subscritas" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorias de peças subscritas na tela inicial" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Mostrar peças mais recentes" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Mostrar as peças mais recentes na página inicial" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Mostrar LDMs não validadas" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar LDMs que aguardam validação na página inicial" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Mostrar alterações recentes de estoque" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar itens de estoque alterados recentemente na página inicial" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Mostrar estoque baixo" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Mostrar itens de baixo estoque na página inicial" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Mostrar estoque esgotado" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Mostrar itens sem estoque na página inicial" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Mostrar estoque necessário" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar itens de estoque necessários para produções na tela inicial" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Mostrar estoque expirado" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Mostrar expirados itens em estoque na tela inicial" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Mostrar estoque inativo" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Mostrar estoque inativo na tela inicial" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Mostrar produções pendentes" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Mostrar produções pendentes na tela inicial" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Mostrar produções atrasadas" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Mostrar produções atrasadas na tela inicial" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Mostrar pedidos de compra pendentes" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Mostrar os Pedidos de Compras pendentes na página inicial" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Mostrar Pedidos de Compra atrasados" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Mostrar os Pedidos de Compras atrasadas na tela inicial" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Mostrar pedidos de vendas pendentes" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas pendentes na página inicial" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Mostrar Pedidos de Venda atrasados" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas atrasadas na tela inicial" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "Mostrar remessas de OV pendentes" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "Mostrar envios OV pendentes na tela inicial" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Mostrar notícias" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Mostrar notícias na tela inicial" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Mostrar etiqueta em linha" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Impressora de etiquetas padrão" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Configurar qual impressora de etiqueta deve ser selecionada por padrão" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Mostrar relatório em linha" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar relatórios em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Procurar Peças" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Mostrar peças na janela de visualização de pesquisa" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Buscar Peças do Fornecedor" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Mostrar fornecedor de peças na janela de visualização de pesquisa" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Buscar peças do fabricante" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Mostrar fabricante de peças na janela de visualização de pesquisa" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Ocultar peças inativas" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Não incluir peças inativas na janela de visualização de pesquisa" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Pesquisar Categorias" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Mostrar categoria das peças na janela de visualização de pesquisa" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Pesquisar Estoque" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Mostrar itens do estoque na janela de visualização de pesquisa" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Ocultar itens do estoque indisponíveis" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Não incluir itens de estoque que não estão disponíveis na janela de visualização de pesquisa" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Procurar Locais" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Mostrar locais de estoque na janela de visualização de pesquisa" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Pesquisar empresas" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Mostrar empresas na janela de visualização de pesquisa" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Procurar Pedidos de Produção" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Mostrar pedidos de produção na janela de visualização de pesquisa" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Mostrar Pedido de Compras" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Mostrar pedidos de compra na janela de visualização de pesquisa" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Não incluir Pedidos de Compras Inativos" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Não incluir pedidos de compras inativos na janela de visualização de pesquisa" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Procurar Pedidos de Vendas" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Mostrar pedidos de vendas na janela de visualização de pesquisa" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Não Incluir Pedidos de Compras Inativas" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Não incluir pedidos de vendas inativos na janela de visualização de pesquisa" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Procurar Pedidos de Devolução" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "Mostrar pedidos de devolução na janela de visualização de pesquisa" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "Não Incluir Pedidos de Devolução Inativas" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "Não incluir pedidos de devolução inativos na janela de visualização de pesquisa" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Mostrar Resultados Anteriores" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "Número de resultados mostrados em cada seção da janela de visualização de pesquisa" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Pesquisa de Regex" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "Permitir expressôes comuns nas conultas de pesquisas" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "Busca de Palavras Inteira" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "Pesquisa retorna que palavra inteira coincide" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Mostrar Quantidade nos Formulários" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Mostrar a quantidade de peças disponíveis em alguns formulários" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "Tecla Esc Fecha Formulários" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Usar a tecla Esc para fechar fomulários modais" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Fixar Navbar" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "A posição do Navbar é fixa no topo da tela" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Formato da data" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar datas" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Agendamento de peças" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Mostrar informações de agendamento de peças" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Balanço de Peça" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Mostrar informação de balanço da peça (se a funcionalidade de balanço estiver habilitada)" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Comprimento da Tabela de Frases" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Limite máximo de comprimento para frases exibidas nas visualizações de tabela" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "Modelo de rótulo padrão da peça" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "O modelo de rótulo da peça a ser selecionado automaticamente" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "Modelo padrão de item de estoque" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "O modelo de rótulo do item a ser selecionado automaticamente" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "Modelo de rótulo de localização do estoque padrão" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "O modelo de rótulo do local de estoque a ser selecionado automaticamente" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "Receber relatório de erros" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "Receber notificações para erros do sistema" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "Quantidade de Parcelamentos" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Preço" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "Preço unitário na quantidade especificada" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Ponto final" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Ponto final em qual o gancho web foi recebido" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Nome para este webhook" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Ativo" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Este gancho web está ativo" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Token" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Token de acesso" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Segredo" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Segredo compartilhado para HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "ID da Mensagem" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Identificador exclusivo desta mensagem" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Servidor" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Servidor do qual esta mensagem foi recebida" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Cabeçalho" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Cabeçalho da mensagem" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Corpo" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Corpo da mensagem" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Ponto do qual esta mensagem foi recebida" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Trabalhado em" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "O trabalho desta mensagem foi concluído?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Id" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Autor" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumo" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Lida" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "Esta notícia do item foi lida?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "Esta notícia do item foi lida?" msgid "Image" msgstr "Imagem" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "Arquivo de imagem" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "Nome da unidade deve ser um identificador válido" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "Nome da unidade" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "Símbolo de unidade opcional" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definição" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "Definição de unidade" @@ -3556,19 +3564,28 @@ msgstr "Novo {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "Um novo pedido foi criado e atribuído a você" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Itens Recebidos" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Os itens de um pedido de compra foram recebidos" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "Os itens de um pedido de devolução foram recebidos" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Erro criado pela extensão" @@ -3685,7 +3702,7 @@ msgstr "Moeda padrão utilizada para esta empresa" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Empresa" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Valor do Parâmetro" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "Descrição da peça fornecedor" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "Descrição da peça fornecedor" msgid "Note" msgstr "Anotação" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "preço base" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Taxa mínima (ex.: taxa de estoque)" @@ -3963,7 +3980,7 @@ msgstr "Quantidade de embalagens" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Quantidade total fornecida em um único pacote. Deixe em branco para itens únicos." -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "múltiplo" @@ -4041,8 +4058,8 @@ msgstr "Baixar imagem do URL" msgid "Delete image" msgstr "Excluir imagem" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Estoque do Fornecedor" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Pedidos de compra" @@ -4162,7 +4179,7 @@ msgstr "Novo Pedido de Compra" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Pedidos de vendas" @@ -4187,7 +4204,7 @@ msgstr "Estoque Atribuído" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "Pedidos de Devolução" @@ -4403,7 +4420,7 @@ msgstr "Atualizar disponibilidade de peças" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Itens de Estoque" @@ -4517,11 +4534,11 @@ msgstr "Código QR" msgid "Total Price" msgstr "Preço Total" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "Nenhum pedido de compra correspondente encontrado" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "Nenhum pedido de compra correspondente encontrado" msgid "Purchase Order" msgstr "Pedido de Compra" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Pedido de Compra" msgid "Return Order" msgstr "Devolver pedido" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Desconhecido" @@ -4572,7 +4589,7 @@ msgstr "Descrição do pedido (opcional)" msgid "Select project code for this order" msgstr "Selecione o código do projeto para este pedido" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Link para página externa" @@ -4596,11 +4613,11 @@ msgstr "Ponto de contato para este pedido" msgid "Company address for this order" msgstr "Endereço da empresa para este pedido" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Referência do pedido" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Situação do pedido de compra" @@ -4621,15 +4638,15 @@ msgstr "Código de referência do pedido fornecedor" msgid "received by" msgstr "recebido por" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Data de emissão" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Dia que o pedido foi feito" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Dia que o pedido foi concluído" @@ -4637,99 +4654,99 @@ msgstr "Dia que o pedido foi concluído" msgid "Part supplier must match PO supplier" msgstr "Fornecedor de peça deve corresponder a fornecedor da OC" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "Quantidade deve ser um número positivo" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Empresa para qual os itens foi vendidos" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Referência do Cliente " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Código de Referência do pedido do cliente" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Data de Envio" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "enviado por" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "O pedido não pode ser concluído, pois nenhuma parte foi atribuída" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "Apenas um pedido aberto pode ser marcado como completo" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Pedido não pode ser concluído, pois, há envios incompletos" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "Pedido não pode ser concluído, pois, há itens na linha incompletos" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Quantidade do item" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Referência do Item em Linha" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Observações do Item de Linha" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data alvo para este item de linha (deixe em branco para usar a data alvo do pedido)" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "Descrição item de linha (opcional)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Contexto" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Contexto adicional para esta linha" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Preço Unitário" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "A peça do fornecedor deve corresponder ao fornecedor" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "excluído" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Pedido" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Fornecedor da Peça" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "Fornecedor da Peça" msgid "Received" msgstr "Recebido" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Número de itens recebidos" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Preço de Compra" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Preço unitário de compra" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Onde o Comprador quer que este item seja armazenado?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Peça virtual não pode ser atribuída a um pedido de venda" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Preço de Venda" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Preço de venda unitário" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Quantidade enviada" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Data do envio" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Data de Entrega" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "Data da entrega do envio" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Verificado por" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Usuário que verificou esta remessa" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Remessa" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Número do Envio" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Número de Rastreamento" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Informação de rastreamento da remessa" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Número da Fatura" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Número de referência para fatura associada" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "O pedido já foi enviado" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "Remessa não foi alocada nos itens de estoque" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "O item do estoque não foi atribuído" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "Não é possível alocar o item de estoque para uma linha de uma peça diferente" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Não é possível alocar uma linha sem uma peça" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A quantidade de alocação não pode exceder a quantidade em estoque" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "Quantidade deve ser 1 para item de estoque serializado" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "Pedidos de venda não coincidem com a remessa" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "Remessa não coincide com pedido de venda" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Linha" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Referência de remessa do pedido de venda" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Item" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Selecione o item de estoque para alocar" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Insira a quantidade de atribuição de estoque" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "Referência de Pedidos de Devolução" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "Empresa da qual os itens estão sendo retornados" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "Estado do pedido de retorno" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "Somente itens da série podem ser devolvidos" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "Selecione o item a ser devolvido pelo cliente" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "Data de Recebimento" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "Data que o pedido a ser devolvido foi recebido" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Despesa/gastos" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "Gastos com esta linha de itens" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "Gastos para reparar e/ou devolver esta linha de itens" @@ -5461,12 +5478,12 @@ msgstr "Atualizado {part} unid.-preço para {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Atualizado {part} unid.-preço para {price} e quantidade para {qty}" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "ID da Peça" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Nome da Peça" @@ -5475,20 +5492,20 @@ msgstr "Nome da Peça" msgid "Part Description" msgstr "Descrição da Peça" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisão" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Palavras chave" @@ -5509,11 +5526,11 @@ msgstr "ID Local Padrão" msgid "Default Supplier ID" msgstr "ID de Fornecedor Padrão" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Estoque Mínimo" @@ -5539,11 +5556,11 @@ msgstr "Usado em" msgid "Building" msgstr "Produzindo" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Custo Mínimo" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Custo Máximo" @@ -5567,7 +5584,7 @@ msgstr "Caminho da Categoria" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Peças" @@ -5583,7 +5600,7 @@ msgstr "ID Item LDM" msgid "Parent IPN" msgstr "IPN Paternal" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "IPN da Peça" @@ -5625,7 +5642,7 @@ msgstr "Validar a Lista de Materiais completa" msgid "This option must be selected" msgstr "Esta opção deve ser selecionada" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Local Padrão" @@ -5643,14 +5660,14 @@ msgstr "Estoque Disponível" msgid "Input quantity for price calculation" msgstr "Quantidade para o cálculo de preço" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria da Peça" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Categorias de Peça" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "Item em estoque com este número de série já existe" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "Não é permitido duplicar IPN em configurações de partes" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "Uma parte com este Nome, IPN e Revisão já existe." -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "Peças não podem ser atribuídas a categorias estruturais!" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Nome da peça" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "É um modelo" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Esta peça é uma peça modelo?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Esta peça é variante de outra peça?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "Descrição da peça (opcional)" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Categoria" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Categoria da Peça" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Numero interno do produto" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Revisão de peça ou número de versão" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "Onde este item é armazenado normalmente?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Fornecedor Padrão" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Fornecedor padrão da peça" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Validade Padrão" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Validade (em dias) para itens do estoque desta peça" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Nível mínimo de estoque permitido" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Unidade de medida para esta peça" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Essa peça pode ser construída a partir de outras peças?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "Essa peça pode ser usada para construir outras peças?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Esta parte tem rastreamento para itens únicos?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Esta peça pode ser comprada de fornecedores externos?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Esta peça pode ser vendida a clientes?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Esta parte está ativa?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "Esta é uma peça virtual, como um software de produto ou licença?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "Soma de Verificação da LDM" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "Soma de verificação da LDM armazenada" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "LDM conferida por" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "LDM verificada no dia" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Criação de Usuário" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Último Balanço" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Venda múltipla" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "Moeda usada para armazenar os cálculos de preços" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "Custo Mínimo da LDM" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "Custo mínimo das peças componentes" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "Custo Máximo da LDM" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "Custo máximo das peças componentes" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "Custo Mínimo de Compra" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "Custo mínimo histórico de compra" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "Custo Máximo de Compra" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "Custo máximo histórico de compra" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "Preço Interno Mínimo" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "Custo mínimo baseado nos intervalos de preço internos" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "Preço Interno Máximo" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "Custo máximo baseado nos intervalos de preço internos" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "Preço Mínimo do Fornecedor" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "Preço mínimo da peça de fornecedores externos" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "Preço Máximo do Fornecedor" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "Preço máximo da peça de fornecedores externos" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "Custo Mínimo variável" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "Custo mínimo calculado das peças variáveis" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "Custo Máximo Variável" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "Custo máximo calculado das peças variáveis" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "Custo total mínimo calculado" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "Custo total máximo calculado" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "Preço Mínimo de Venda" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "Preço mínimo de venda baseado nos intervalos de preço" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "Preço Máximo de Venda" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "Preço máximo de venda baseado nos intervalos de preço" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "Custo Mínimo de Venda" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "Preço histórico mínimo de venda" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "Custo Máximo de Venda" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "Preço histórico máximo de venda" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "Peça para Balanço" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "Total de Itens" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "Número de entradas de estoques individuais no momento do balanço" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "Estoque total disponível no momento do balanço" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "Estoque total disponível no momento do balanço" msgid "Date" msgstr "Data" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "Data de realização do balanço" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Notas adicionais" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "Usuário que fez o balanço" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "Custo Mínimo de Estoque" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "Custo mínimo estimado de estoque disponível" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "Custo Máximo de Estoque" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "Custo máximo estimado de estoque disponível" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Reportar" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "Arquivo de Relatório de Balanço (gerado internamente)" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Contagem de Peças" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "Número de peças cobertas pelo Balanço" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "Usuário que solicitou este relatório de balanço" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "Modelos de teste só podem ser criados para peças rastreáveis" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "O teste com este nome já existe para esta peça" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nome de Teste" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Insira um nome para o teste" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Descrição do Teste" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Digite a descrição para este teste" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Requerido" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "Este teste é obrigatório passar?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Requer Valor" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "Este teste requer um valor ao adicionar um resultado de teste?" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Anexo obrigatório" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "Este teste requer um anexo ao adicionar um resultado de teste?" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "Parâmetros da caixa de seleção não podem ter unidades" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "Os parâmetros da caixa de seleção não podem ter escolhas" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "Escolhas devem ser únicas" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "Nome do modelo de parâmetro deve ser único" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Nome do Parâmetro" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "Unidades físicas para este parâmetro" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "Descrição do Parâmetro" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Caixa de seleção" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "Este parâmetro é uma caixa de seleção?" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Escolhas" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opções válidas para este parâmetro (separadas por vírgulas)" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "Escolha inválida para valor do parâmetro" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Peça Paternal" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Modelo de parâmetro" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Dados" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Valor do Parâmetro" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Valor Padrão" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Valor Padrão do Parâmetro" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "ID da peça ou nome da peça" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Valor exclusivo do ID de peça" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Valor da parte IPN" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Nível" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "Nível da LDM" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Item LDM" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Selecione a Peça Parental" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Sub peça" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Selecionar peça a ser usada na LDM" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "Quantidade de LDM para este item LDM" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Este item LDM é opcional" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este item LDM é consumível (não é rastreado nos pedidos de construção)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Excedente" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "Referência do Item LDM" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "Notas do Item LDM" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Soma de verificação" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "Soma de Verificação da LDM da linha" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validado" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "O item da LDM foi validado" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Obtém herdados" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este item da LDM é herdado por LDMs para peças variáveis" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Permitir variações" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Itens de estoque para as peças das variantes podem ser usados para este item LDM" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "Quantidade deve ser valor inteiro para peças rastreáveis" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "Sub peça deve ser especificada" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "Substituir Item da LDM" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "A peça de substituição não pode ser a mesma que a peça mestre" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "Item LDM Parental" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Substituir peça" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Selecionar Peça Relacionada" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "Relacionamento da peça não pode ser criada com ela mesma" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "Relação duplicada já existe" @@ -6735,7 +6752,7 @@ msgstr "Adicionar informações de balanço de estoque" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Balanço" @@ -7292,72 +7309,99 @@ msgstr "Nenhuma ação especificada" msgid "No matching action found" msgstr "Nenhuma ação correspondente encontrada" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "Faltando dados do código de barras" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Nenhum resultado encontrado para os dados do código de barras" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Coincidência encontrada para dados de código de barras" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Código de barras corresponde ao item existente" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "Nenhuma correspondência encontrada para o valor fornecido" - -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "Fornece suporte nativo para códigos de barras" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "Contribuidores do InvenTree" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "Configuração de Extensão" msgid "Plugin Configurations" msgstr "Configuração de Extensões" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Chave" @@ -7998,7 +8042,7 @@ msgstr "Excluir quando esgotado" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Data de validade" @@ -8006,23 +8050,40 @@ msgstr "Data de validade" msgid "External Location" msgstr "Localização externa" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "Inativo" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "Quantidade obrigatória" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "Uma peça válida deve ser fornecida" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "A peça do fornecedor informado não existe" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A peça do fornecedor tem um tamanho de pacote definido, mas o item use_pack_size não foi definida" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Números de série não podem ser fornecidos para uma parte não rastreável" @@ -8046,7 +8107,7 @@ msgstr "Localização do estoque" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Locais de estoque" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Este Item do Estoque expirou em %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "Expirado" @@ -8691,11 +8752,6 @@ msgstr "Expirado" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Este Item do Estoque expira em %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "Inativo" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "Nenhum balanço feito" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "Editar" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Excluir" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "Página Inicial" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Confirmar endereço de e-mail" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Por favor, confirme que %(email)s é um endereço de e-mail para o usuário %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Confirmar" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "Nenhuma produção corresponde a consulta" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "Operação de excluir não permitida" msgid "View operation not allowed" msgstr "Operação de visualização não permitidas" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Manter este formulário aberto" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Insira um número válido" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Há erros de formulário" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Nenhum resultado encontrado" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Buscando" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Limpar entrada" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Coluna de arquivos" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Nome do Campo" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Selecionar Colunas" @@ -11212,27 +11269,27 @@ msgstr "selecionado" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "Etiquetas enviadas à impressora" @@ -12493,7 +12550,7 @@ msgstr "Pegar" msgid "Add Stock" msgstr "Adicionar Estoque" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Adicionar" @@ -13132,7 +13189,7 @@ msgstr "Mostrar Notificações" msgid "New Notifications" msgstr "Novas Notificações" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "Administrador" @@ -13327,7 +13384,7 @@ msgstr "Permissões" msgid "Important dates" msgstr "Datas importantes" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13335,67 +13392,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Permissão definida" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Grupo" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Visualizar" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Permissão para ver itens" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Permissão para adicionar itens" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Alterar" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Permissões para editar itens" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Permissão para excluir itens" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po index 719904a52b..472ee71850 100644 --- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-13 12:13+0000\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,10 +55,10 @@ msgstr "" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -128,7 +128,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -265,10 +265,10 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -282,7 +282,7 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -296,13 +296,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "" @@ -343,9 +343,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -369,8 +369,8 @@ msgstr "" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -433,24 +433,24 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:90 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -713,7 +713,7 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -920,14 +920,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -978,7 +978,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -994,9 +994,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1025,11 +1025,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1138,7 +1138,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1153,7 +1153,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,7 +1174,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1232,39 +1232,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1306,36 +1306,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1352,19 +1352,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1419,7 +1419,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1468,8 +1468,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1761,7 +1761,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1798,8 +1798,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1849,7 +1849,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2355,7 +2355,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2365,7 +2365,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2376,7 +2376,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2385,7 +2385,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2393,7 +2393,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2402,7 +2402,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2413,7 +2413,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2961,558 +2961,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3522,31 +3530,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3559,19 +3567,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3688,7 +3705,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3853,7 +3870,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3879,9 +3896,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3922,7 +3939,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3932,11 +3949,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3966,7 +3983,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4044,8 +4061,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4142,7 +4159,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4165,7 +4182,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4190,7 +4207,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4406,7 +4423,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4520,11 +4537,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4538,7 +4555,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4547,7 +4564,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4575,7 +4592,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4599,11 +4616,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4624,15 +4641,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4640,99 +4657,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4742,185 +4759,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5464,12 +5481,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5478,20 +5495,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5512,11 +5529,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5542,11 +5559,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5570,7 +5587,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5586,7 +5603,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5628,7 +5645,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5646,14 +5663,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5715,294 +5732,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6014,318 +6031,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6738,7 +6755,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7295,72 +7312,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7380,8 +7424,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7483,51 +7527,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7556,7 +7600,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7706,19 +7750,19 @@ msgstr "" msgid "Test report" msgstr "" -#: report/helpers.py:13 +#: report/helpers.py:15 msgid "A4" msgstr "" -#: report/helpers.py:14 +#: report/helpers.py:16 msgid "A3" msgstr "" -#: report/helpers.py:15 +#: report/helpers.py:17 msgid "Legal" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:18 msgid "Letter" msgstr "" @@ -7921,6 +7965,22 @@ msgstr "" msgid "Serial" msgstr "" +#: report/templatetags/report.py:95 +msgid "Asset file does not exist" +msgstr "" + +#: report/templatetags/report.py:144 report/templatetags/report.py:209 +msgid "Image file not found" +msgstr "" + +#: report/templatetags/report.py:230 +msgid "part_image tag requires a Part instance" +msgstr "" + +#: report/templatetags/report.py:269 +msgid "company_image tag requires a Company instance" +msgstr "" + #: stock/admin.py:40 stock/admin.py:126 msgid "Location ID" msgstr "" @@ -7985,7 +8045,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -7993,23 +8053,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8033,7 +8110,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8669,7 +8746,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8678,11 +8755,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9306,9 +9378,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:535 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9412,7 +9484,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2147 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9760,7 +9832,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:762 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9961,6 +10033,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10713,7 +10786,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2143 templates/js/translated/forms.js:2159 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11114,40 +11187,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:788 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:891 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1461 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1959 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2263 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2477 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3075 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -12480,7 +12553,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13119,7 +13192,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13314,7 +13387,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13322,66 +13395,66 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 086cbe30b3..c6ace1b5b2 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -54,10 +54,10 @@ msgstr "Введите дату" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Указанный домен электронной почты не у msgid "Registration is disabled." msgstr "Регистрация отключена." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "недопустимое количество" @@ -264,10 +264,10 @@ msgstr "Вложения" msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Выберите файл для вложения" msgid "Link" msgstr "Ссылка" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Ссылка на внешний URL" @@ -295,13 +295,13 @@ msgstr "Комментарий" msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Пользователь" @@ -342,9 +342,9 @@ msgstr "Повторяющиеся имена не могут существов msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Название" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Хэш штрих-кода" msgid "Unique hash of barcode data" msgstr "Уникальный хэш данных штрих-кода" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Обнаружен существующий штрих-код" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Ошибка сервера" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Сервер зарегистрировал ошибку." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Должно быть действительным номером" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Валюта" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Выберите валюту из доступных вариантов" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Имя файла" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Неверное значение" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Файл данных" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Выберите файл данных для загрузки" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Неподдерживаемый тип файла" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Файл слишком большой" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Столбцы в файле не найдены" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Столбцы данных не предоставлены" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Отсутствует обязательный столбец: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Повторяющийся столбец: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "Ссылка" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "ССЫЛКА файла изображения на удаленном сервере" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Загрузка изображений с удаленного URL-адреса не включена" @@ -710,7 +710,7 @@ msgstr "Возвращено" msgid "In Progress" msgstr "Выполняется" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "О программе InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Сборка должна быть отменена перед удалением" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Расходники" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Порядок сборки" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Заказы на сборку" @@ -991,9 +991,9 @@ msgstr "Неверный выбор для родительской сборки msgid "Build Order Reference" msgstr "Ссылка на заказ" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "ПорядокСборки, которому выделяется эта #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Код партии" msgid "Batch code for this build output" msgstr "Код партии для этого вывода сборки" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Целевая дата завершения" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Дата завершения" @@ -1171,7 +1171,7 @@ msgstr "Пользователь, выпустивший этот заказ н #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Заказ на сборку {build} был завершен" msgid "A build order has been completed" msgstr "Заказ на сборку был завершен" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Вывод сборки не указан" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Вывод сборки уже завершен" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Вывод сборки не совпадает с порядком сборки" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "Количество не может быть больше выходного количества" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Построить объект" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "Построить объект" msgid "Quantity" msgstr "Количество" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Требуемое количество для заказа сборки" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Предмет на складе перераспределен" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Выделенное количество должно быть больше нуля" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "Выбранный товар на складе не соответствует строке BOM" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "Выбранный товар на складе не соответст msgid "Stock Item" msgstr "Предметы на складе" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Исходный складской предмет" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Количество на складе для построения" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Установить в" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Целевой товар на складе" @@ -1416,7 +1416,7 @@ msgstr "Автоматически выделить серийные номер msgid "Automatically allocate required items with matching serial numbers" msgstr "Автоматически выделять необходимые элементы с соответствующими серийными номерами" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Следующие серийные номера уже существуют или недействительны" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "Расположение для завершенных выходов сборки" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Складской источник" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Назначение" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Шаблон" msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Сборка" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Компонент" @@ -2382,7 +2382,7 @@ msgstr "Компонент" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Можно купить" @@ -2390,7 +2390,7 @@ msgstr "Можно купить" msgid "Parts are purchaseable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Можно продавать" @@ -2399,7 +2399,7 @@ msgstr "Можно продавать" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Отслеживание" msgid "Parts are trackable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Показывать непроверенные BOMы" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Показывать закончившиеся детали" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся на складе единицы хранения на главной странице" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Показывать требуемые детали" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для сборки единицы хранения на главной странице" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Показывать просрочку" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Показывать залежалые" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Показывать залежалые единицы хранения на главной странице" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Показывать незавершённые сборки" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые сборки на главной странице" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Показывать просроченные сборки" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Искать заказы на сборку" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Отображать заказы на сборку в окне предварительного просмотра поиска" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Поиск заказов на продажу" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Поиск возвращенных заказов" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Планирование деталей" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Запасы деталей" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Цена" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Активный" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "Изображение" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "Для этой компании используется валюта #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Компания" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Значение параметра" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "Заметка" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "базовая стоимость" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "Скачать изображение по ссылке" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Склад поставщика" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Заказы на закупку" @@ -4162,7 +4179,7 @@ msgstr "Новый заказ на закупку" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Заказы на продажу" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Детали на складе" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "Общая стоимость" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "Заказ на закупку" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "Заказ на закупку" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "Описание заказа (дополнительно)" msgid "Select project code for this order" msgstr "Выберите код проекта для этого заказа" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Компания, которой детали продаются" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "Описание товара (необязательно)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Контекст" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Дополнительный контекст для этой строки" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Закупочная цена" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Цена продажи" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Информация об отслеживании доставки" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Укажите количество на складе" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "Выберите товар возврата от клиента" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "Артикул" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Наименование детали" @@ -5475,20 +5492,20 @@ msgstr "Наименование детали" msgid "Part Description" msgstr "Описание детали" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Версия" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Ключевые слова" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Разновидность" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Минимальный запас" @@ -5539,11 +5556,11 @@ msgstr "Используется в" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "Путь к категории" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Детали" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "IPN" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "Необходимо выбрать эту опцию" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Место хранения по умолчанию" @@ -5643,14 +5660,14 @@ msgstr "Доступный запас" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Категория детали" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Наименование детали" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Шаблон" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Эта деталь является шаблоном для других деталей?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "Описание детали (необязательно)" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Категория" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Категория" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Внутренний код детали" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Версия детали" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "Где обычно хранится эта деталь?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Срок действия по умолчанию" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Срок годности (в днях) для товаров на складе этой позиции" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Единицы измерения этой детали" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "Может ли эта деталь использоваться для создания других деталей?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Может ли эта деталь быть продана покупателям?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Эта деталь актуальна?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "Тестовые шаблоны могут быть созданы только для отслеживаемых деталей" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Название теста" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Введите имя для теста" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Введите описание для этого теста" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "Артикул или наименование детали" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "BOM Компонент" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Эта позиция - расходник. (она не отслеживается в заказах на сборку)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Выберите связанную часть" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "Действие не указано" msgid "No matching action found" msgstr "Соответствующее действие не найдено" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Не найдено совпадений для данных штрих-кода" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Найдено совпадение по штрих-коду" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "Необходимо указать количество" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "Место хранения" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Места хранения" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Удалить" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "Главная страница" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Подтверждение адреса электронной почт msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Пожалуйста, подтвердите, что %(email)s является адресом электронной почты пользователя %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Подтвердить" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "Операция удаления не разрешена" msgid "View operation not allowed" msgstr "Операция просмотра не разрешена" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Введите корректный номер" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Форма содержит ошибки" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Не найдено" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "Права доступа" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Права доступа" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Вид" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Разрешение на просмотр элементов" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Разрешение на добавление элементов" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Разрешение на редактирование элементов" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Разрешение на удаление элементов" diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po index ae2e4ba16e..1ccc701d30 100644 --- a/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -54,10 +54,10 @@ msgstr "Vnesi datum" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Domena epošte ni podprta." msgid "Registration is disabled." msgstr "Registracija je onemogočena." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Podana napačna količina" @@ -152,7 +152,7 @@ msgstr "Doseg skupine {group} presega dovoljene količine ({expected_quantity})" #: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 #, python-brace-format msgid "Invalid group sequence: {group}" -msgstr "" +msgstr "Nepravilno zaporedje skupine: {group}" #: InvenTree/helpers.py:608 msgid "No serial numbers found" @@ -160,7 +160,7 @@ msgstr "Serijske številke niso najdene" #: InvenTree/helpers.py:611 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" -msgstr "" +msgstr "Število unikatnih serijskih številk ({len(serials)}) se mora ujemati s količino ({expected_quantity})" #: InvenTree/helpers.py:740 msgid "Remove HTML tags from this value" @@ -201,14 +201,14 @@ msgstr "Podani URL ni veljavna slikovna datoteka" #: InvenTree/magic_login.py:28 #, python-brace-format msgid "[{site.name}] Log in to the app" -msgstr "" +msgstr "[{site.name}] Prijave se v aplikacijo" #: InvenTree/magic_login.py:38 company/models.py:122 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" -msgstr "" +msgstr "E-pošta" #: InvenTree/models.py:81 msgid "Metadata must be a python dict object" @@ -264,10 +264,10 @@ msgstr "Priloga" msgid "Select file to attach" msgstr "Izberite prilogo" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Izberite prilogo" msgid "Link" msgstr "Povezava" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Zunanja povezava" @@ -295,13 +295,13 @@ msgstr "Komentar" msgid "File comment" msgstr "Komentar datoteke" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Uporabnik" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "Nedovoljena izbira" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Ime" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Oznaka črtne kode" msgid "Unique hash of barcode data" msgstr "Enolična oznaka podatkov črtne kode" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Črtna koda že obstaja" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Napaka strežnika" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Zaznana napaka na strežniku." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Mora biti veljavna številka" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Ime datoteke" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Neveljavna vrednost" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Podatki datoteke" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Izberite datoteke za naložiti" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Nepodprta vrsta datotek" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Datoteka je prevelika" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "V datoteki ni bilo najdenih stolpcev" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "V datoteki ni bilo njadenih vrstic" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Niso bile podane vrste s podatki" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Niso bili podani stolpci s podatki" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Manjka obvezni stolpec: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dvojni stolpec: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "Povezava" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "Povezava do oddaljene slike" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Prenos slik iz oddaljene povezave ni omogočen" @@ -710,7 +710,7 @@ msgstr "Vrnjeno" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Nalog izgradnje" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Nalogi izgradnje" @@ -991,9 +991,9 @@ msgstr "Neveljavna izbira za nadrejeno izgradnjo" msgid "Build Order Reference" msgstr "Referenca naloga izgradnje" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Številka serije" msgid "Batch code for this build output" msgstr "Številka serije za to izgradnjo" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Rok dokončanja" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Datom končanja" @@ -1171,7 +1171,7 @@ msgstr "Uporabnik, ki je izdal nalog za izgradnjo" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Nalog izgradnje {build} je dokončan" msgid "A build order has been completed" msgstr "Nalog izgradnej dokončan" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Ni določena izgradnja" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Igradnja je že dokončana" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Izgradnja se ne ujema s nalogom izdelave" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Količina" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot sledljiv" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Preveč zaloge je prestavljene" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Prestavljena količina mora biti večja od 0" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Količina za zalogo s serijsko številko mora biti 1" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Postavka zaloge" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Izvorna postavka zaloge" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Količina zaloge za prestavljanje za izgradnjo" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Inštaliraj v" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Destinacija postavke zaloge" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index d76f04833d..8fc19c59a0 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -54,10 +54,10 @@ msgstr "Ange datum" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Den angivna e-postdomänen är inte godkänd." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" @@ -264,10 +264,10 @@ msgstr "Bilaga" msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Välj fil att bifoga" msgid "Link" msgstr "Länk" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Länk till extern URL" @@ -295,13 +295,13 @@ msgstr "Kommentar" msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Användare" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Namn" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Befintlig streckkod hittades" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Serverfel" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Välj valuta från tillgängliga alternativ" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Filnamn" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Ogiltigt värde" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Välj fil för uppladdning" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Filtypen stöds inte" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Filen är för stor" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Inga kolumner hittades i filen" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Inga rader hittades i filen" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Inga rader angivna" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Inga datakolumner har angetts" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Saknar obligatorisk kolumn: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicerad kolumn: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL för fjärrbildsfil" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" @@ -710,7 +710,7 @@ msgstr "Återlämnad" msgid "In Progress" msgstr "Pågående" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Byggnationen måste avbrytas innan den kan tas bort" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Byggorder" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Byggordrar" @@ -991,9 +991,9 @@ msgstr "Ogiltigt val för överordnad bygge" msgid "Build Order Reference" msgstr "Byggorderreferens" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "Batchkod" msgid "Batch code for this build output" msgstr "Batch-kod för denna byggutdata" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Datum för slutförande" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Slutförandedatum" @@ -1171,7 +1171,7 @@ msgstr "Användare som utfärdade denna byggorder" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "Byggorder {build} har slutförts" msgid "A build order has been completed" msgstr "En byggorder har slutförts" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Ingen byggutgång angiven" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Byggutgång är redan slutförd" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Byggutgång matchar inte bygg order" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Antal" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad som spårbar" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Lagerposten är överallokerad" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Allokeringsmängden måste vara större än noll" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Antal måste vara 1 för serialiserat lager" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Artikel i lager" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Källa lagervara" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Lagersaldo att allokera för att bygga" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Installera till" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Destination lagervara" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Mål" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Sök efter artiklar" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Sök efter leverantörsartikel" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Sök efter tillverkarartikel" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Företag" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "QR-kod" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Leveransdatum" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Nyckelord" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Artiklar" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategori" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Standardleverantör" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "Ingen åtgärd specificerad" msgid "No matching action found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "Redigera" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Radera" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "Bekräfta e-postadress" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Bekräfta" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 8a8e1468f6..d92103cfcf 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -54,10 +54,10 @@ msgstr "ป้อนวันที่" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "ปริมาณสินค้าไม่ถูกต้อง" @@ -264,10 +264,10 @@ msgstr "ไฟล์แนบ" msgid "Select file to attach" msgstr "เลือกไฟล์ที่ต้องการแนบ" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "เลือกไฟล์ที่ต้องการแนบ" msgid "Link" msgstr "ลิงก์" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -295,13 +295,13 @@ msgstr "ความคิดเห็น" msgid "File comment" msgstr "ความเห็นของไฟล์" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "ผู้ใช้งาน" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "ชื่อ" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "บาร์โค้ดนี้มีในระบบแล้ว" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "ต้องเป็นตัวเลข" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "ชื่อไฟล์" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "ไฟล์ข้อมูล" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "เลือกไฟล์ข้อมูลที่จะอัปโหลด" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "ไฟล์มีขนาดใหญ่เกินไป" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -710,7 +710,7 @@ msgstr "ส่งคืนแล้ว" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "เกี่ยวกับ Inventree" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1171,7 +1171,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index 85b15d267f..2d7e52866b 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -54,10 +54,10 @@ msgstr "Tarih giriniz" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Sağlanan e-posta alanı onaylanmadı." msgid "Registration is disabled." msgstr "Kayıt devre dışı." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" @@ -264,10 +264,10 @@ msgstr "Ek" msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Eklenecek dosyayı seç" msgid "Link" msgstr "Bağlantı" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" @@ -295,13 +295,13 @@ msgstr "Yorum" msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Kullanıcı" @@ -342,9 +342,9 @@ msgstr "" msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Adı" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "Barkod Hash" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Sunucu Hatası" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Para birimi" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Dosya adı" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Geçersiz değer" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Veri Dosyası" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Yüklemek istediğiniz dosyayı seçin" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Desteklenmeyen dsoya tipi" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Dosya boyutu çok büyük" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Dosyada kolon bulunamadı" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Dosyada uygun kolon bulunamadı" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Gerekli kolon ismi eksik:'{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Tekrarlanan kolon ismi:'{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -710,7 +710,7 @@ msgstr "İade" msgid "In Progress" msgstr "Devam Ediyor" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "InvenTree Hakkında" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "Yapım İşi Emri" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Yapım İşi Emirleri" @@ -991,9 +991,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ 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:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "Hedef tamamlama tarihi" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -1171,7 +1171,7 @@ msgstr "Bu yapım işi emrini veren kullanıcı" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Yapım işi çıktısı belirtilmedi" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Yapım işi çıktısı zaten tamamlanmış" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "Miktar" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "" msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Hedef stok kalemi" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "Stok Kaynağı" msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Hedef" @@ -2352,7 +2352,7 @@ msgstr "Kategori Paremetre Sablonu Kopyala" msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "Şablon" msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "Montaj" 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:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Bileşen" @@ -2382,7 +2382,7 @@ msgstr "Bileşen" 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:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Satın Alınabilir" @@ -2390,7 +2390,7 @@ msgstr "Satın Alınabilir" msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Satılabilir" @@ -2399,7 +2399,7 @@ msgstr "Satılabilir" msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "Takip Edilebilir" msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Fiyat" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Aktif" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "Resim" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "Bu şirket için varsayılan para birimi" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "Parametre değeri" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "Not" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "çoklu" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "Tedarikçi Stoku" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" @@ -4162,7 +4179,7 @@ msgstr "Yeni Satın Alma Emri" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Satış Emirleri" @@ -4187,7 +4204,7 @@ msgstr "Atanan Stok" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Harici sayfaya bağlantı" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Sipariş referansı" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "DPN" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revizyon" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Anahtar kelimeler" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Çeşidi" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimum Stok" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Parçalar" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Varsayılan Konum" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Parça Kategorileri" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Parça adı" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:830 +#: part/models.py:798 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:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:971 +#: part/models.py:939 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:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 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:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Gerekli" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 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:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:3830 +#: part/models.py:3798 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:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "İşlem belirtilmedi" msgid "No matching action found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Barkod verisi için eşleşme bulunamadı" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Barkod verisi için eşleşme bulundu" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "Stok Konumu" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Stok Konumları" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" 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:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Onay" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "Bildirimleri Göster" msgid "New Notifications" msgstr "Yeni Bildirimler" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "Yetkiler" msgid "Important dates" msgstr "Önemli tarihler" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "İzinleri ayarla" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Grup" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Görünüm" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Parçayı görüntüleme izni" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Parça ekleme izni" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Değiştir" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Parçaları düzenleme izni" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Parçaları silme izni" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index adb6233dfe..01a7eb9a21 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -54,10 +54,10 @@ msgstr "Nhập ngày" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "Miền email được cung cấp không được phê duyệt." msgid "Registration is disabled." msgstr "Đăng ký bị vô hiệu hóa." -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "Số lượng cung cấp không hợp lệ" @@ -264,10 +264,10 @@ msgstr "Đính kèm" msgid "Select file to attach" msgstr "Chọn file đính kèm" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "Chọn file đính kèm" msgid "Link" msgstr "Liên kết" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "Liên kết đến URL bên ngoài" @@ -295,13 +295,13 @@ msgstr "Bình luận" msgid "File comment" msgstr "Bình luận tệp tin" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "Người dùng" @@ -342,9 +342,9 @@ msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục" msgid "Invalid choice" msgstr "Lựa chọn sai" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "Tên" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,113 @@ msgstr "Dữ liệu băm mã vạch" msgid "Unique hash of barcode data" msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "Mã vạch đã tồn tại" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "Lỗi máy chủ" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "Lỗi đã được ghi lại bởi máy chủ." -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "Phải là một số hợp lệ" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Tiền tệ" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "Chọn tiền tệ trong các tùy chọn đang có" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." -msgstr "" +msgstr "Bạn không có quyền thay đổi vai trò của người dùng này." -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" -msgstr "" +msgstr "Chỉ có siêu người dùng là có thể tạo người dùng mới" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" -msgstr "" +msgstr "Chào mừng đến với {current_site.name}" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." -msgstr "" +msgstr "Tài khoản của bạn đã được tạo.\n\n" +"Xin hãy sử dụng chức năng quên mật khẩu để truy cập (tại https://{domain})." -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "Tên tập tin" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "Giá trị không hợp lệ" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "Tập tin dữ liệu" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "Chọn tệp tin để tải lên" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "Loại tệp tin không được hỗ trợ" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "Tệp tin quá lớn" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "Không tìm thấy cột nào trong tệp tin" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "Không tìm thấy dòng nào trong tệp tin" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "Chưa có dữ liệu" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "Chưa cung cấp cột dữ liệu" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Thiếu cột bắt buộc: '{name}'" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Nhân bản cột: '{col}'" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "URL của tệp hình ảnh bên ngoài" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật" @@ -710,7 +711,7 @@ msgstr "Đã trả lại" msgid "In Progress" msgstr "Đang tiến hành" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +918,14 @@ msgstr "Giới thiệu" msgid "Build must be cancelled before it can be deleted" msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Vật tư tiêu hao" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +976,7 @@ msgstr "Tạo đơn hàng" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "Tạo đơn hàng" @@ -991,9 +992,9 @@ msgstr "Lựa chọn sai cho bản dựng cha" msgid "Build Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1023,11 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1136,7 @@ msgstr "Mã lô hàng" msgid "Batch code for this build output" msgstr "Mã lô cho đầu ra bản dựng này" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1151,7 @@ msgstr "Ngày hoàn thành mục tiêu" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này." -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Ngày hoàn thành" @@ -1171,7 +1172,7 @@ msgstr "Người dùng người đã được phân công cho đơn đặt bản #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1230,39 @@ msgstr "Đơn đặt bản dựng {build} đã được hoàn thành" msgid "A build order has been completed" msgstr "Một đơn đặt bản dựng đã được hoàn thành" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "Không có đầu ra bản dựng đã được chỉ ra" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "Đầu ra bản dựng đã được hoàn thiện" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "Số lượng không thể lớn hơn số lượng đầu ra" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "Dựng đối tượng" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1304,36 @@ msgstr "Dựng đối tượng" msgid "Quantity" msgstr "Số lượng" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "Yêu cầu số lượng để dựng đơn đặt" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm chủ được đánh dấu là có thể theo dõi" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "Kho hàng đã bị phân bổ quá đà" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "Số lượng phân bổ phải lớn hơn 0" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "Số lượng phải là 1 cho kho sê ri" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1350,19 @@ msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" msgid "Stock Item" msgstr "Kho hàng" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "Kho hàng gốc" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "Số lượng kho hàng cần chỉ định để xây dựng" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "Cài đặt vào" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "Kho hàng đích" @@ -1416,7 +1417,7 @@ msgstr "Số sêri tự cấp" msgid "Automatically allocate required items with matching serial numbers" msgstr "Tự động cấp số seri phù hợp cho hàng hóa được yêu cầu" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "Số sêri sau đây đã tồn tại hoặc không hợp lệ" @@ -1465,8 +1466,8 @@ msgid "Location for completed build outputs" msgstr "Vị trí cho đầu ra bản dựng hoàn thiện" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1759,7 @@ msgstr "Kho không được phân bổ đầy đủ với yêu cầu bản dựn #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1796,8 @@ msgid "Completed Outputs" msgstr "Đầu ra hoàn thiện" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1847,7 @@ msgstr "Nguồn kho" msgid "Stock can be taken from any available location." msgstr "Kho có thể được lấy từ bất kỳ địa điểm nào." -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Đích đến" @@ -2352,7 +2353,7 @@ msgstr "Sao chéo mẫu tham số danh mục" msgid "Copy category parameter templates when creating a part" msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2363,7 @@ msgstr "Mẫu" msgid "Parts are templates by default" msgstr "Sản phẩm là mẫu bởi mặc định" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2374,7 @@ msgstr "Lắp ráp" msgid "Parts can be assembled from other components by default" msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Thành phần" @@ -2382,7 +2383,7 @@ msgstr "Thành phần" msgid "Parts can be used as sub-components by default" msgstr "Sản phẩm có thể được sử dụng mặc định như thành phần phụ" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "Có thể mua" @@ -2390,7 +2391,7 @@ msgstr "Có thể mua" msgid "Parts are purchaseable by default" msgstr "Sản phẩm mặc định có thể mua được" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Có thể bán" @@ -2399,7 +2400,7 @@ msgstr "Có thể bán" msgid "Parts are salable by default" msgstr "Sản phẩm mặc định có thể bán được" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2411,7 @@ msgstr "Có thể theo dõi" msgid "Parts are trackable by default" msgstr "Sản phẩm mặc định có thể theo dõi được" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2959,566 @@ msgstr "Khoảng thời gian xóa báo cáo" msgid "Stocktake reports will be deleted after specified number of days" msgstr "Báo cáo kiểm kê sẽ bị xóa sau số ngày xác định" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "Hiển thị tên đầy đủ của người dùng" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ẩn sản phẩm bị tắt trong kết quả trình bày tại trang chủ" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "Hiện sản phẩm đã đăng ký" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "Hiện sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "Hiện danh mục đã đăng ký" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "Hiện danh mục sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "Hiển thị BOM chưa được xác thực" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "Hiện BOM chờ xác thực tại trang chủ" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "Hiện thay đổi kho hàng gần đây" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "Hiện hàng trong kho được thay đổi gần nhất trên trang chủ" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "Hiển thị hàng còn ít" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "Hiển thị hàng hóa còn ít tại trang chủ" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "Hiển thị hết hàng" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "Hiển thị hàng cần thiết" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "Hiện hàng trong kho cần thiết cho xây dựng tại trang chủ" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "Bán kho quá hạn" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "Hiển thị hàng hóa đã quá hạn trên trang chủ" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "Hiện kho hàng ế" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "Hiện hàng trong kho bị ế trên trang chủ" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "Hiện bản dựng chờ xử lý" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "Hiện bản dựng chờ xử lý trên trang chủ" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "Hiện bản dựng quá hạn" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "Hiện bản dựng quá hạn trên trang chủ" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "Hiện PO nổi bật" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "Hiện PO nổi bật trên trang chủ" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "Hiện PO quá hạn" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "Hiện đơn mua hàng quá hạn trên trang chủ" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "Hiện đơn hàng vận chuyển nổi bật" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "Hiện đơn vận chuyển quá hạn" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "Hiện đơn vận chuyển chờ xử lý" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "Hiện tin tức" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "Hiện tin tức trên trang chủ" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "Hiển thị nhãn cùng dòng" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "Máy in tem nhãn mặc định" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "Hiển thị báo cáo cùng hàng" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Hiện báo cáo PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "Tìm sản phẩm" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "Hiện hàng hóa trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "Tìm sản phẩm nhà cung cấp" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "Hiện sản phẩm nhà cung cấp trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "Tìm sản phẩm nhà sản xuất" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "Hiện sản phẩm nhà sản xuất trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "Loại trừ sản phẩm ngưng hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "Tìm kiếm danh mục" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "Hiện danh mục sản phẩm trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "Tìm kiếm kho" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "Ẩn hàng hóa trong kho không có sẵn" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "Tìm kiếm vị trí" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "Tìm kiếm công ty" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "Tìm kiếm đặt hàng xây dựng" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "Tìm kiếm đơn đặt mua" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "Loại trừ đơn đặt mua không hoạt động" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "Tìm đơn đặt hàng người mua" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "Loại trừ đơn đặt hàng người mua không hoạt động" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "Tìm kiếm đơn hàng trả lại" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "Hiện đơn hàng trả lại trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "Loại trừ đơn hàng trả lại không hoạt động" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "Không bao gồm đơn hàng trả lại không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "Kết quả xem trước tìm kiếm" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "Tìm kiếm biểu thức" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "Tìm phù hợp toàn bộ chữ" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "Truy vấn tìm trả về kết quả phù hợp toàn bộ chữ" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "Hiện số lượng trong biểu mẫu" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "Hiển thị số lượng sản phẩm có sẵn trong một số biểu mẫu" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "Phím escape để đóng mẫu biểu" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "Sử dụng phím escape để đóng mẫu biểu hộp thoại" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "Cố định điều hướng" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "Vị trí thành điều hướng là cố định trên cùng màn hình" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "Định dạng ngày" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "Định dạng ưa chuộng khi hiển thị ngày" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Lập lịch sản phẩm" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Hiển thị thông tin lịch sản phẩm" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Kiểm kê sản phẩm" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Hiển thị thông tin kiểm kê sản phẩm (nếu chức năng kiểm kê được bật)" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "Độ dài chuỗi trong bảng" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "Giới hạn độ dài tối đa cho chuỗi hiển thị trong kiểu xem bảng biểu" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "Mẫu nhãn sản phẩm mặc định" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "Mẫu nhãn sản phẩm mặc định được chọn tự động" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "Mẫu hàng hóa trong khi mặc định" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "Mẫu nhãn hàng hóa trong kho tự động được chọn" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "Mẫu nhãn vị trí kho mặc định" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "Mẫu nhãn vị trí kho được chọn tự động" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "Nhận báo cáo lỗi" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "Nhận thông báo khi có lỗi hệ thống" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "Số lượng giá phá vỡ" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Giá" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "Đơn vị giá theo số lượng cụ thể" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "Đầu mối" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "Đầu mối tại điểm webhook được nhận" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "Tên của webhook này" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "Hoạt động" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "Webhook có hoạt động không" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "Chữ ký số" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "Chữ ký số để truy cập" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "Bí mật" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "Mã bí mật dùng chung cho HMAC" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "Mã Tin nhắn" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "Định danh duy nhất cho tin nhắn này" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "Máy chủ" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "Mãy chủ từ tin nhắn này đã được nhận" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "Đầu mục" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "Đầu mục tin nhắn" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "Thân" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "Thân tin nhắn này" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "Đầu mối của tin nhắn này đã nhận được" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "Làm việc vào" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "Công việc trong tin nhắn này đã kết thúc?" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "Mã" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tiêu đề" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "Đã công bố" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "Tác giả" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "Tóm tắt" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "Đọc" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "Tin này đã được đọc?" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3528,31 @@ msgstr "Tin này đã được đọc?" msgid "Image" msgstr "Hình ảnh" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "Tệp ảnh" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "Tên đơn vị phải là một định danh hợp lệ" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "Tên đơn vị" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Biểu tượng" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "Biểu tượng đơn vị tùy chọn" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Định nghĩa" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "Định nghĩa đơn vị" @@ -3556,19 +3565,28 @@ msgstr "Mới {verbose_name}" msgid "A new order has been created and assigned to you" msgstr "Một đơn đặt hàng mới đã được tạo và phân công cho bạn" -#: common/notifications.py:298 common/notifications.py:305 +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "{verbose_name} đã bị hủy" + +#: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "Một đơn đặt từng được phân công cho bạn đã bị hủy bỏ" + +#: common/notifications.py:306 common/notifications.py:313 msgid "Items Received" msgstr "Mục đã nhận" -#: common/notifications.py:300 +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "Hàng đã được nhận theo đơn đặt mua" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "Hàng đã nhận theo đơn hàng trả lại" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "Lỗi được thông báo bởi phần mở rộng" @@ -3685,7 +3703,7 @@ msgstr "Tiền tệ mặc định dùng cho công ty này" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Doanh nghiêp" @@ -3850,7 +3868,7 @@ msgid "Parameter value" msgstr "Giá trị tham số" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3894,9 @@ msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu vớ #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3937,7 @@ msgid "Supplier part description" msgstr "Mô tả sản phẩm nhà cung cấp" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3947,11 @@ msgstr "Mô tả sản phẩm nhà cung cấp" msgid "Note" msgstr "Ghi chú" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "chi phí cơ sở" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" @@ -3963,7 +3981,7 @@ msgstr "Số lượng gói" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Tổng số lượng được cung cấp trong một gói đơn. Để trống cho các hàng hóa riêng lẻ." -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "nhiều" @@ -4041,8 +4059,8 @@ msgstr "Tải hình ảnh từ URL" msgid "Delete image" msgstr "Xóa ảnh" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4157,7 @@ msgstr "Kho nhà cung cấp" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "Đơn mua hàng" @@ -4162,7 +4180,7 @@ msgstr "Đơn đặt hàng mới" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "Đơn hàng bán" @@ -4187,7 +4205,7 @@ msgstr "Kho đã được giao" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "Đơn hàng trả lại" @@ -4403,7 +4421,7 @@ msgstr "Cập nhật sự sẵn sàng sản phẩm" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "Hàng trong kho" @@ -4517,11 +4535,11 @@ msgstr "Mã QR" msgid "Total Price" msgstr "Tổng tiền" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "Không tìm thấy đơn đặt mua phù hợp" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4553,7 @@ msgstr "Không tìm thấy đơn đặt mua phù hợp" msgid "Purchase Order" msgstr "Đơn hàng" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4562,7 @@ msgstr "Đơn hàng" msgid "Return Order" msgstr "Đơn hàng trả lại" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Không rõ" @@ -4572,7 +4590,7 @@ msgstr "Mô tả đơn đặt (tùy chọn)" msgid "Select project code for this order" msgstr "Mã dự án đã chọn cho đơn đặt hàng này" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "Liên kết đến trang bên ngoài" @@ -4596,11 +4614,11 @@ msgstr "Đầu mối liên hệ của đơn đặt này" msgid "Company address for this order" msgstr "Địa chỉ công ty cho đơn đặt này" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "Mã đặt hàng" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "Trạng thái đơn đặt mua" @@ -4621,15 +4639,15 @@ msgstr "Mã tham chiếu đơn đặt nhà cung cấp" msgid "received by" msgstr "nhận bởi" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "Ngày phát hành" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "Ngày đặt hàng đã phát hành" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "Ngày đặt hàng đã được hoàn thiện" @@ -4637,99 +4655,99 @@ msgstr "Ngày đặt hàng đã được hoàn thiện" msgid "Part supplier must match PO supplier" msgstr "Nhà cung cấp sản phẩm phải trùng với nhà cung cấp PO" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "Số lượng phải là số dương" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "Doanh nghiệp từ những hàng hóa đang được bán" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "Tham chiếu khách hàng " -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "Mã tham chiếu đơn đặt của khách hàng" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Ngày giao hàng" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "vận chuyển bằng" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "Đơn đặt hàng không thể hoàn thiện vì chưa có sản phẩm nào được chọn" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "Những đơn hàng đang mở thì sẽ được đánh dấu là hoàn thành" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Đơn hàng không thể hoàn thành được vì vận chuyển chưa xong" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "Đơn hàng không thể hoàn thành được vì những khoản riêng chưa xong" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "Số lượng mặt hàng" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "Tham chiếu khoản riêng" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "Ghi chú khoản riêng" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Ngày mục tiêu cho khoản riêng này (để trống để sử dụng ngày mục tiêu từ đơn đặt)" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "Mô tả khoản riêng (tùy chọn)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "Ngữ cảnh" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "Ngữ cảnh bổ sung" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "Đơn giá" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "Sản phẩm nhà cung cấp phải phù hợp với nhà cung cung cấp" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "đã bị xóa" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Đặt hàng" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "Sản phẩm nhà cung cấp" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4757,185 @@ msgstr "Sản phẩm nhà cung cấp" msgid "Received" msgstr "Đã nhận" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "Số mục đã nhận" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Giá mua" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "Giá đơn vị mua" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "Có phải người mua hàng muốn mặt hàng này được tích trữ?" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "Không thể gán sản phẩm ảo vào trong đơn đặt bán hàng" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Giá bán" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "Giá bán đơn vị" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "Số lượng đã vận chuyển" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "Ngày vận chuyển" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Ngày giao hàng" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "Ngày giao hàng của vận chuyển" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "Kiểm tra bởi" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "Người dùng đã kiểm tra vận chuyển này" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Vận chuyển" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "Mã vận chuyển" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "Số theo dõi" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "Thông tin theo dõi vận chuyển" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "Mã hóa đơn" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "Số tham chiếu liên kết với hóa đơn" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "Vận đơn đã được gửi đi" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "Vận đơn chưa có hàng hóa được phân bổ" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "Hàng trong kho chưa được giao" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "Không thể phân bổ hàng hóa vào cùng với dòng với sản phẩm khác" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản phẩm nào" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "Số lượng phải là 1 cho hàng hóa sêri" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "Đơn bán hàng không phù hợp với vận đơn" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "Vận đơn không phù hợp với đơn bán hàng" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "Dòng" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "Tham chiếu vận đơn của đơn hàng bán" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Hàng hóa" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "Chọn hàng trong kho để phân bổ" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "Nhập số lượng phân kho" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "Tham chiếu đơn hàng trả lại" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "Công ty có hàng hóa sẽ được trả lại" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "Trạng thái đơn hàng trả lại" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "Chỉ hàng hóa thêo sêri mới có thể được gán vào đơn hàng trả lại" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "Chọn hàng hóa để trả lại từ khách hàng" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "Ngày nhận được" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "Ngày mà hàng hóa trả lại đã được nhận" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kết quả" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "Kết quả cho hàng hóa dòng này" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này" @@ -5461,12 +5479,12 @@ msgstr "Cập nhật {part} giá đơn vị đến {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Cập nhật {part} giá đơn vị đến {price} và số lượng đến {qty}" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "ID sản phẩm" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "Tên sản phẩm" @@ -5475,20 +5493,20 @@ msgstr "Tên sản phẩm" msgid "Part Description" msgstr "Mô tả sản phẩm" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Phiên bản" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Từ khóa" @@ -5509,11 +5527,11 @@ msgstr "ID vị trí mặc định" msgid "Default Supplier ID" msgstr "ID nhà cung ứng mặc định" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Biến thể của" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Kho tối thiểu" @@ -5539,11 +5557,11 @@ msgstr "Sử dụng trong" msgid "Building" msgstr "Đang dựng" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Chi phí tối thiểu" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Chi phí tối đa" @@ -5567,7 +5585,7 @@ msgstr "Đưỡng dẫn danh mục" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "Nguyên liệu" @@ -5583,7 +5601,7 @@ msgstr "ID hàng hóa BOM" msgid "Parent IPN" msgstr "IPN cha" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "IPN sản phẩm" @@ -5625,7 +5643,7 @@ msgstr "Xác minh toàn bộ hóa đơn vật liệu" msgid "This option must be selected" msgstr "Tùy chọn này phải được chọn" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Điểm bán mặc định" @@ -5643,14 +5661,14 @@ msgstr "Số hàng tồn" msgid "Input quantity for price calculation" msgstr "Số lượng đầu ra cho tính toán giá bán" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Danh mục sản phẩm" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "Danh mục sản phẩm" @@ -5712,294 +5730,294 @@ msgstr "IPN phải phù hợp mẫu biểu thức chính quy {pattern}" msgid "Stock item with this serial number already exists" msgstr "Hàng trong kho với số sê ri này đã tồn tại" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN trùng lặp không được cho phép trong thiết lập sản phẩm" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại." -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "Sản phẩm không thể được phân vào danh mục sản phẩm có cấu trúc!" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "Tên sản phẩm" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "Là Mẫu" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "Sản phẩm này có phải là sản phẩm mẫu?" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "Đây có phải là 1 biến thể của sản phẩm khác?" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "Mô tả (không bắt buộc)" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong kết quả tìm kiếm" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Danh mục" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "Danh mục sản phẩm" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "Mã sản phẩm nội bộ" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "Hàng hóa này sẽ được cất vào đâu?" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Nhà cung ứng mặc định" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "Nhà cung ứng sản phẩm mặc định" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "Hết hạn mặc định" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "Cấp độ kho tối thiểu được phép" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "Đơn vị đo cho sản phẩm này" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "Sản phẩm này có thể được dựng từ sản phẩm khác?" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "Sản phẩm này có thể dùng để dựng các sản phẩm khác?" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "Sản phẩm này có đang theo dõi cho hàng hóa duy nhất?" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "Sản phẩm này có thể mua được từ nhà cung ứng bên ngoài?" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "Sản phẩm này có thể được bán cho khách hàng?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "Sản phẩm này đang hoạt động?" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "Đây là sản phẩm ảo, ví dụ như sản phẩm phần mềm hay bản quyền?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "Giá trị tổng kiểm BOM" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "Giá trị tổng kiểm BOM đã được lưu" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "BOM kiểm tra bởi" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "Ngày kiểm tra BOM" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "Tạo người dùng" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "Trách nhiệm chủ sở hữu cho sản phẩm này" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Kiểm kê cuối cùng" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "Bán nhiều" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "Tiền được dùng để làm đệm tính toán giá bán" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "Chi phí BOM tối thiểu" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối thiểu" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "Chi phí BOM tối đa" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối đa" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "Chi phí mua vào tối thiểu" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "Chi phí mua vào tối thiểu trong lịch sử" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "Chi phí mua tối đa" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "Chi phí thành phần sản phẩm tối đa trong lịch sử" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "Giá nội bộ tối thiểu" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "Chi phí tối thiểu dựa trên phá vỡ giá nội bộ" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "Giá nội bộ tối đa" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "Chi phí tối đa dựa trên phá vỡ giá nội bộ" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "Giá nhà cung ứng tối thiểu" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "Giá sản phẩm tối thiểu từ nhà cung ứng bên ngoài" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "Giá nhà cung ứng tối đa" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "Giá sản phẩm tối đã từ nhà cung ứng bên ngoài" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "Giá trị biến thể tối thiểu" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "Chi phí tối thiểu của sản phẩm biến thể đã tính" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "Chi phí biến thể tối đa" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "Chi phí tối đa của sản phẩm biến thể đã tính" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "Chi phí tối thiểu tính toán tổng thể" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "Chi phí tối đa tính toán tổng thể" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "Giá bán thấp nhất" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "Giá bán tối thiểu dựa trên phá giá" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "Giá bán cao nhất" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "Giá bán cao nhất dựa trên phá giá" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "Chi phí bán hàng tối thiểu" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "Giá bán hàng tối thiểu trong lịch sử" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "Giá bán hàng tối đa" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "Giá bán hàng tối đa trong lịch sử" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "Sản phẩm dành cho kiểm kê" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "Tổng số hàng" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "Số mục kho độc lậo tại thời điểm kiểm kê" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "Tống số kho tại thời điểm kiểm kê" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6029,318 @@ msgstr "Tống số kho tại thời điểm kiểm kê" msgid "Date" msgstr "Ngày" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "Kiểm kê đã thực hiện" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "Ghi chú bổ sung" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "Người dùng đã thực hiện đợt kiểm kê này" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "Chi phí kho tối thiểu" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "Chi phí kho tối thiểu ước tính của kho đang có" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "Chi phí kho tối đa" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "Chi phí kho tối đa ước tính của kho đang có" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "Báo cáo" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "Bộ đếm sản phẩm" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "Số sản phẩm đã được bao quát bởi kiểm kê" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "Người dùng đã yêu cầu báo cáo kiểm kê này" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "Chỉ có thể tạo mẫu kiểm thử cho sản phẩm có thể theo dõi" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "Kiểm thử với tên này đã tồn tại cho sản phẩm này" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Tên kiểm thử" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "Nhập tên cho kiểm thử" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "Mô tả kiểm thử" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "Nhập mô tả cho kiểm thử này" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Bắt buộc" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "Kiểm thử này bắt buộc phải đạt?" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Giá trị bắt buộc" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "Kiểm thử này yêu cầu 1 giá trị khi thêm một kết quả kiểm thử?" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Yêu cầu đính kèm" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "Kiểm thử này yêu cầu tệp đính kèm khi thêm một kết quả kiểm thử?" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "Tham số hộp kiểm tra không thể có đơn vị" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "Tham số hộp kiểm tra không thể có lựa chọn" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "Lựa chọn phải duy nhất" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "Tên tham số mẫu phải là duy nhất" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "Tên tham số" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "Đơn vị vật lý cho tham số này" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "Mô tả tham số" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Ô lựa chọn" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "Tham số này có phải là hộp kiểm tra?" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Lựa chọn" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu phẩy)" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "Lựa chọn sai cho giá trị tham số" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "Sản phẩm cha" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "Mẫu tham số" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "Dữ liệu" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "Giá trị tham số" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "Giá trị mặc định" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "Giá trị tham số mặc định" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "Tên hoặc mã sản phẩm" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "Giá trị mã sản phẩm duy nhất" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "Giá trị IPN sản phẩm" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "Cấp độ" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "Cấp độ BOM" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "Mục BOM" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "Chọn sản phẩm cha" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "Sản phẩm phụ" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "Chọn sản phẩm được dùng trong BOM" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "Số lượng BOM cho mục BOM này" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "Mục BOM này là tùy chọn" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Mục BOM này bị tiêu hao (không được theo dõi trong đơn đặt bản dựng)" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Dư thừa" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Số lượng bản dựng lãng phí ước tính (tuyệt đối hoặc phần trăm)" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "Tham chiếu mục BOM" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "Ghi chú mục BOM" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "Giá trị tổng kiểm" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "Giá trị tổng kiểm dòng BOM" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Đã xác minh" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "Mục BOM này là hợp lệ" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Nhận thừa hưởng" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến thể" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Cho phép biến thể" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "Sản phẩm phụ phải được chỉ định" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "Sảm phẩm thay thế mục BOM" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "Sản phẩm thay thế không thể giống sản phẩm chủ đạo" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "Hàng hóa BOM cha" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "Sản phẩm thay thế" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "Sản phẩm 1" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "Sản phẩm 2" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "Chọn sản phẩm liên quan" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "Không thể tạo mối quan hệ giữa một sản phẩm và chính nó" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "Đã tồn tại mối quan hệ trùng lặp" @@ -6735,7 +6753,7 @@ msgstr "Thêm thông tin kiểm kê" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "Kiểm kê" @@ -7292,73 +7310,100 @@ msgstr "Chưa chỉ ra hành động cụ thể" msgid "No matching action found" msgstr "Không tìm thấy chức năng phù hợp" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "Sai dữ liệu mã vạch" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "Không tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Mã vạch phù hợp với hàng hóa hiện có" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "Không tìm thấy dữ liệu phù hợp với dữ liệu được cung cấp" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" +msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" -msgstr "Đơn đặt mua không hợp lệ" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" +msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" -msgstr "Vị trí kho không hợp lệ" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" +msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "Hàng hóa này đã được nhận" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" -msgstr "Mã vạch nhà cung cấp không hợp lệ" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" +msgstr "Không phù hợp với mã vạch nhà cung cấp" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" -msgstr "Mã vạch nhà cung cấp không chứa mã đơn đặt" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" +msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp cho mã vạch" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" -msgstr "Phát hiện nhiều đơn đặt mua đã được đặt cho '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" +msgstr "Tìm thấy nhiều đơn đặt mua phù hợp với '{order}'" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" -msgstr "Không tìm thấy đơn đặt mua cho '{order_number}'" +msgid "No matching purchase order for '{order}'" +msgstr "Không có đơn đặt mua phù hợp với '{order}'" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "Đơn đặt mua không phù hợp với nhà cung cấp" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "Không tìm thấy mục dòng chờ xử lý cho sản phẩm nhà cung cấp" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "Buộc phải nhập thông tin khác để nhận mục dòng này" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "Mục dòng đơn đặt mua đã nhận" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" -msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp cho mã vạch" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" +msgstr "" #: plugin/base/label/label.py:40 msgid "Label printing failed" @@ -7377,8 +7422,8 @@ msgstr "Cung cấp hỗ trợ gốc cho mã vạch" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "Người đóng góp InvenTree" @@ -7446,15 +7491,15 @@ msgstr "Bật chế độ gỡ lỗi - trả về mã HTML thuần thay vì PDF" #: plugin/builtin/labels/label_sheet.py:29 msgid "Page size for the label sheet" -msgstr "" +msgstr "Khổ giấy cho tờ nhãn" #: plugin/builtin/labels/label_sheet.py:34 msgid "Border" -msgstr "" +msgstr "Viền" #: plugin/builtin/labels/label_sheet.py:35 msgid "Print a border around each label" -msgstr "" +msgstr "In một viền xung quanh từng nhãn" #: plugin/builtin/labels/label_sheet.py:40 report/models.py:203 msgid "Landscape" @@ -7462,69 +7507,69 @@ msgstr "Ngang" #: plugin/builtin/labels/label_sheet.py:41 msgid "Print the label sheet in landscape mode" -msgstr "" +msgstr "In tờ viền theo khổ giấy nằm ngang" #: plugin/builtin/labels/label_sheet.py:53 msgid "InvenTree Label Sheet Printer" -msgstr "" +msgstr "Máy in tờ nhãn InvenTree" #: plugin/builtin/labels/label_sheet.py:54 msgid "Arrays multiple labels onto a single sheet" -msgstr "" +msgstr "Sắp xếp nhiều nhãn trong một tờ đơn" #: plugin/builtin/labels/label_sheet.py:87 msgid "Label is too large for page size" -msgstr "" +msgstr "Nhãn quá lớn so với khổ giấy" #: plugin/builtin/labels/label_sheet.py:116 msgid "No labels were generated" -msgstr "" +msgstr "Chưa tạo nhãn nào" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "Tích hợp nhà cung cấp - DigiKey" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "Hỗ trợ quét mã vạch DigiKey" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "Nhà cung cấp hành động như 'DigiKey'" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "Tích hợp nhà cung cấp - LCSC" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "Cung cấp khả năng quét mã vạch LCSC" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "Nhà cung cấp hoạt động như 'LCSC'" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "Tích hợp nhà cung cấp - Mouser" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "Cung cấp khả năng quét mã vạch Mouser" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "Nhà cung cấp hành động như 'Mouser'" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "Tích hợp nhà cung cấp - TME" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "Cung cấp khả năng quét mã vạch TME" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "Nhà cung cấp hoạt động như 'TME'" @@ -7553,7 +7598,7 @@ msgstr "Cấu hình phần bổ sung" msgid "Plugin Configurations" msgstr "Cấu hình phần bổ sung" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "Khóa" @@ -7920,19 +7965,19 @@ msgstr "Sê-ri" #: report/templatetags/report.py:95 msgid "Asset file does not exist" -msgstr "" +msgstr "Tệp tin tài sản không tồn tại" #: report/templatetags/report.py:144 report/templatetags/report.py:209 msgid "Image file not found" -msgstr "" +msgstr "Không tìm thấy tệp hình ảnh" #: report/templatetags/report.py:230 msgid "part_image tag requires a Part instance" -msgstr "" +msgstr "thẻ part_image yêu cầu 1 thực thể sản phẩm" #: report/templatetags/report.py:269 msgid "company_image tag requires a Company instance" -msgstr "" +msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" #: stock/admin.py:40 stock/admin.py:126 msgid "Location ID" @@ -7998,7 +8043,7 @@ msgstr "Xóa khi thiếu hụt" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "Ngày hết hạn" @@ -8006,23 +8051,40 @@ msgstr "Ngày hết hạn" msgid "External Location" msgstr "Địa điểm bên ngoài" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "Ế" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "Bắt buộc nhập số lượng" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "Phải cung cấp sản phẩm hợp lệ" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "Sản phẩm nhà cung cấp đã đưa không tồn tại" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được định nghĩa nhưng cờ use_pack_size chưa được thiết lập" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi" @@ -8046,7 +8108,7 @@ msgstr "Kho hàng" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "Vị trí kho hàng" @@ -8682,7 +8744,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Mặt hàng này hết hạn vào %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "Đã hết hạn" @@ -8691,11 +8753,6 @@ msgstr "Đã hết hạn" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Mặt hàng này hết hạn vào %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "Ế" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "Chưa thực hiện kiểm kê" @@ -9319,9 +9376,9 @@ msgid "Edit" msgstr "Sửa" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "Xóa" @@ -9425,7 +9482,7 @@ msgid "Home Page" msgstr "Trang chủ" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9830,7 @@ msgstr "Xác nhận địa chỉ email" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "Xin hãy xác nhận rằng %(email)s là địa chỉ email cho người dùng %(user_display)s." -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "Xác nhận" @@ -9974,6 +10031,7 @@ msgid "There are pending database migrations which require attention" msgstr "Có di trú cơ sở dữ liệu đang chờ xử lý cần bạn lưu ý" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10784,7 @@ msgid "No builds matching query" msgstr "Không có bản dựng nào phù hợp truy vấn" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11185,40 @@ msgstr "Hoạt động xóa là không được phép" msgid "View operation not allowed" msgstr "Hoạt động xem là không được phép" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "Giữ biểu mẫu này mở" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "Nhập vào số hợp lệ" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Lỗi biểu mẫu tồn tại" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "Không tìm thấy kết quả" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "Đang tìm kiếm" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "Dọn dẹp đầu vào" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "Cột tệp tin" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "Tên trường" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "Chọn cột" @@ -11212,27 +11270,27 @@ msgstr "đã chọn" msgid "Printing Options" msgstr "Tùy chọn in ấn" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "In nhãn" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "In nhãn" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "In" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "Chọn mẫu nhãn" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "Chọn phần bổ sung" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "Nhãn đã gửi đến máy in" @@ -12493,7 +12551,7 @@ msgstr "Lấy" msgid "Add Stock" msgstr "Thêm kho" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "Thêm" @@ -13132,7 +13190,7 @@ msgstr "Hiển thị thông báo" msgid "New Notifications" msgstr "Thông báo mới" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "Quản trị" @@ -13326,7 +13384,7 @@ msgstr "Quyền" msgid "Important dates" msgstr "Ngày quan trọng" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "Mã thông báo đã bị thu hồi" @@ -13334,67 +13392,67 @@ msgstr "Mã thông báo đã bị thu hồi" msgid "Token has expired" msgstr "Mã thông báo đã hết hạn" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "Mã thông báo API" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "Mã thông báo API" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "Tên mã thông báo" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "Tên tùy chỉnh mã thông báo" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "Ngày hết hạn mã thông báo" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "Xem lần cuối" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "Lần cuối mã thông báo được sử dụng" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "Đã thu hồi" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "Quyền hạn đã đặt" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "Nhóm" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "Xem" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "Quyền để xem mục" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "Quyền để thêm mục" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "Đổi" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "Quyển để sửa mục" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "Quyền để xóa mục" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 6e581fc88c..785e7640eb 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: 2023-11-14 03:50+0000\n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -54,10 +54,10 @@ msgstr "輸入日期" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -127,7 +127,7 @@ msgstr "所提供的Email網域尚未被核准。" msgid "Registration is disabled." msgstr "註冊功能已停用。" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "提供的數量無效" @@ -264,10 +264,10 @@ msgstr "附件" msgid "Select file to attach" msgstr "選擇附件" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -281,7 +281,7 @@ msgstr "選擇附件" msgid "Link" msgstr "連結" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "外部URL連結" @@ -295,13 +295,13 @@ msgstr "註解" msgid "File comment" msgstr "檔案註解" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "使用者" @@ -342,9 +342,9 @@ msgstr "同一個上層元件下不能有重複的名字" msgid "Invalid choice" msgstr "無效的選項" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -368,8 +368,8 @@ msgstr "名稱" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -432,112 +432,112 @@ msgstr "條碼雜湊值" msgid "Unique hash of barcode data" msgstr "條碼資料的唯一雜湊值" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "發現現有條碼" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "伺服器錯誤" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "伺服器紀錄了一個錯誤。" -#: InvenTree/serializers.py:60 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "必須是有效的數字" -#: InvenTree/serializers.py:89 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: InvenTree/serializers.py:90 company/models.py:150 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "貨幣" -#: InvenTree/serializers.py:92 +#: InvenTree/serializers.py:93 msgid "Select currency from available options" msgstr "從可用選項中選擇貨幣" -#: InvenTree/serializers.py:339 +#: InvenTree/serializers.py:427 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:349 +#: InvenTree/serializers.py:437 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:366 +#: InvenTree/serializers.py:454 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:367 +#: InvenTree/serializers.py:455 #, python-brace-format msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:431 +#: InvenTree/serializers.py:519 msgid "Filename" msgstr "檔案名稱" -#: InvenTree/serializers.py:468 +#: InvenTree/serializers.py:556 msgid "Invalid value" msgstr "無效的值" -#: InvenTree/serializers.py:490 +#: InvenTree/serializers.py:578 msgid "Data File" msgstr "資料檔" -#: InvenTree/serializers.py:491 +#: InvenTree/serializers.py:579 msgid "Select data file for upload" msgstr "選擇要上傳的資料檔案" -#: InvenTree/serializers.py:512 +#: InvenTree/serializers.py:600 msgid "Unsupported file type" msgstr "不支援的檔案類型" -#: InvenTree/serializers.py:518 +#: InvenTree/serializers.py:606 msgid "File is too large" msgstr "檔案大小過大" -#: InvenTree/serializers.py:539 +#: InvenTree/serializers.py:627 msgid "No columns found in file" msgstr "檔案中找不到欄位" -#: InvenTree/serializers.py:542 +#: InvenTree/serializers.py:630 msgid "No data rows found in file" msgstr "檔案中找不到資料列" -#: InvenTree/serializers.py:665 +#: InvenTree/serializers.py:753 msgid "No data rows provided" msgstr "沒有提供資料列" -#: InvenTree/serializers.py:668 +#: InvenTree/serializers.py:756 msgid "No data columns supplied" msgstr "沒有提供資料欄位" -#: InvenTree/serializers.py:745 +#: InvenTree/serializers.py:833 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "找不到必須的欄位: 「{name}」" -#: InvenTree/serializers.py:754 +#: InvenTree/serializers.py:842 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "重複的欄位:「{col}」" -#: InvenTree/serializers.py:779 +#: InvenTree/serializers.py:867 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" msgstr "URL" -#: InvenTree/serializers.py:780 +#: InvenTree/serializers.py:868 msgid "URL of remote image file" msgstr "遠端圖片的URL" -#: InvenTree/serializers.py:793 +#: InvenTree/serializers.py:881 msgid "Downloading images from remote URL is not enabled" msgstr "尚未啟用從遠端URL下載圖片" @@ -710,7 +710,7 @@ msgstr "已退回" msgid "In Progress" msgstr "進行中" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -917,14 +917,14 @@ msgstr "關於InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "工單必須被取消才能被刪除" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "耗材" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -975,7 +975,7 @@ msgstr "生產工單" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "生產工單" @@ -991,9 +991,9 @@ msgstr "無效的上層生產工單選擇" msgid "Build Order Reference" msgstr "生產工單代號" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1022,11 +1022,11 @@ msgstr "這張生產工單對應的上層生產工單" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1135,7 +1135,7 @@ msgstr "批量代碼" msgid "Batch code for this build output" msgstr "本批次成品的生產批號" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1150,7 +1150,7 @@ msgstr "目標完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生產的預計完成日期。若超過此日期則工單會逾期。" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "完成日期" @@ -1171,7 +1171,7 @@ msgstr "發布此生產工單的使用者" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1229,39 +1229,39 @@ msgstr "生產工單 {build} 已經完成" msgid "A build order has been completed" msgstr "一張生產工單已經完成" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "尚未指定生產品項" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "生產成品已經完成" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "生產品項與生產工單不符" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "數量必須大於零" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "數量不能大於工單生產數量" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1303,36 +1303,36 @@ msgstr "" msgid "Quantity" msgstr "數量" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "生產工單所需數量" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配的數量({q})不能超過可用的庫存數量({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "庫存品項超額分配" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "分配的數量必須大於零" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "有序號的品項數量必須為1" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "選擇的庫存品項和BOM的項目不符" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1349,19 +1349,19 @@ msgstr "選擇的庫存品項和BOM的項目不符" msgid "Stock Item" msgstr "庫存品項" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "來源庫存項目" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "要分配的庫存數量" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "安裝到" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "目的庫存品項" @@ -1416,7 +1416,7 @@ msgstr "自動分配序號" msgid "Automatically allocate required items with matching serial numbers" msgstr "自動為需要項目分配對應的序號" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "序號已存在或無效" @@ -1465,8 +1465,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1758,7 +1758,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1795,8 +1795,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1846,7 +1846,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2352,7 +2352,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2362,7 +2362,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2373,7 +2373,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2390,7 +2390,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2410,7 +2410,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2958,558 +2958,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3519,31 +3527,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3556,19 +3564,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3685,7 +3702,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3850,7 +3867,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3876,9 +3893,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3919,7 +3936,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3929,11 +3946,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3963,7 +3980,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4041,8 +4058,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4139,7 +4156,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4162,7 +4179,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "銷售訂單" @@ -4187,7 +4204,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4403,7 +4420,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4517,11 +4534,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4535,7 +4552,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4544,7 +4561,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4572,7 +4589,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4596,11 +4613,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4621,15 +4638,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4637,99 +4654,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4739,185 +4756,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5461,12 +5478,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5475,20 +5492,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5509,11 +5526,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5539,11 +5556,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5567,7 +5584,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "零件" @@ -5583,7 +5600,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5625,7 +5642,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5643,14 +5660,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5712,294 +5729,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6011,318 +6028,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6735,7 +6752,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7292,72 +7309,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7377,8 +7421,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7480,51 +7524,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7553,7 +7597,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7998,7 +8042,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8006,23 +8050,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8046,7 +8107,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8682,7 +8743,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8691,11 +8752,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9319,9 +9375,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:511 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9425,7 +9481,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2064 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9773,7 +9829,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:746 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9974,6 +10030,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10726,7 +10783,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2060 templates/js/translated/forms.js:2076 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11127,40 +11184,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:772 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:874 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1422 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1876 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2180 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2394 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2851 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2863 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -11212,27 +11269,27 @@ msgstr "" msgid "Printing Options" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print label" msgstr "" -#: templates/js/translated/label.js:143 +#: templates/js/translated/label.js:148 msgid "Print labels" msgstr "" -#: templates/js/translated/label.js:144 +#: templates/js/translated/label.js:149 msgid "Print" msgstr "" -#: templates/js/translated/label.js:150 +#: templates/js/translated/label.js:155 msgid "Select label template" msgstr "" -#: templates/js/translated/label.js:163 +#: templates/js/translated/label.js:168 msgid "Select plugin" msgstr "" -#: templates/js/translated/label.js:182 +#: templates/js/translated/label.js:187 msgid "Labels sent to printer" msgstr "" @@ -12493,7 +12550,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13132,7 +13189,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13326,7 +13383,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13334,67 +13391,67 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index 11cacf829e..96b482a4a5 100644 --- a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-13 12:13+0000\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" "PO-Revision-Date: 2023-02-28 22:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -59,10 +59,10 @@ msgstr "输入日期" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -132,7 +132,7 @@ msgstr "提供的电子邮件域未被核准。" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "提供的数量无效" @@ -274,10 +274,10 @@ msgstr "附件" msgid "Select file to attach" msgstr "选择附件" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -291,7 +291,7 @@ msgstr "选择附件" msgid "Link" msgstr "链接" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -305,13 +305,13 @@ msgstr "注释" msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "用户" @@ -352,9 +352,9 @@ msgstr "" msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -378,8 +378,8 @@ msgstr "名称" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -444,24 +444,24 @@ msgstr "条码哈希" msgid "Unique hash of barcode data" msgstr "条码数据的唯一哈希" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "发现现有条码" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:61 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "必须是有效数字" #: InvenTree/serializers.py:90 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -728,7 +728,7 @@ msgstr "已退回" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -953,14 +953,14 @@ msgstr "关于 InventTree" msgid "Build must be cancelled before it can be deleted" msgstr "在删除前必须取消生产" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -1011,7 +1011,7 @@ msgstr "生产订单" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "生产订单" @@ -1029,9 +1029,9 @@ msgstr "上级生产选项无效" msgid "Build Order Reference" msgstr "相关生产订单" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1062,11 +1062,11 @@ msgstr "此次生产匹配的订单" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1175,7 +1175,7 @@ msgstr "批量代码" msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1190,7 +1190,7 @@ msgstr "预计完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "完成日期:" @@ -1211,7 +1211,7 @@ msgstr "发布此生产订单的用户" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1273,43 +1273,43 @@ msgstr "生产订单 {build} 已完成" msgid "A build order has been completed" msgstr "生产订单已完成" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "未指定生产产出" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "生产产出已完成" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 #, fuzzy #| msgid "Quantity must be greater than zero" msgid "Quantity cannot be greater than the output quantity" msgstr "数量必须大于0" -#: build/models.py:1266 +#: build/models.py:1274 #, fuzzy #| msgid "Build Notes" msgid "Build object" msgstr "生产备注" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1351,40 +1351,40 @@ msgstr "生产备注" msgid "Quantity" msgstr "数量" -#: build/models.py:1281 +#: build/models.py:1289 #, fuzzy #| msgid "Stock required for build order" msgid "Required quantity for build order" msgstr "生产订单所需的库存" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "生产项必须指定生产产出,因为主部件已经被标记为可追踪的" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "序列化库存的数量必须是 1" -#: build/models.py:1453 +#: build/models.py:1461 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Selected stock item does not match BOM line" msgstr "在BOM中找不到选定的库存项" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1401,19 +1401,19 @@ msgstr "在BOM中找不到选定的库存项" msgid "Stock Item" msgstr "库存项" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "分配到生产的数量" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "安装到" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "目标库存项" @@ -1468,7 +1468,7 @@ msgstr "自动分配序列号" msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项分配对应的序列号" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "以下序列号已存在或无效" @@ -1523,8 +1523,8 @@ msgid "Location for completed build outputs" msgstr "已完成生产产出的仓储地点" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1822,7 +1822,7 @@ msgstr "库存尚未被完全分配到此构建订单" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1859,8 +1859,8 @@ msgid "Completed Outputs" msgstr "已完成输出" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1914,7 +1914,7 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "目的地" @@ -2441,7 +2441,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2451,7 +2451,7 @@ msgstr "模板" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2462,7 +2462,7 @@ msgstr "组装" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "组件" @@ -2471,7 +2471,7 @@ msgstr "组件" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "可购买" @@ -2479,7 +2479,7 @@ msgstr "可购买" msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "可销售" @@ -2488,7 +2488,7 @@ msgstr "可销售" msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2499,7 +2499,7 @@ msgstr "可追踪" msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -3063,572 +3063,580 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 #, fuzzy #| msgid "Build to allocate parts" msgid "Hide inactive parts" msgstr "生产以分配部件" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 #, fuzzy #| msgid "Show latest parts on the homepage" msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 #, fuzzy #| msgid "Purchase Orders" msgid "Search Return Orders" msgstr "采购订单" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 #, fuzzy #| msgid "Search" msgid "Regex Search" msgstr "搜索" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 #, fuzzy #| msgid "Select Label Template" msgid "Default part label template" msgstr "选择标签模板" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 #, fuzzy #| msgid "stock items selected" msgid "Default stock item template" msgstr "已选择库存项" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 #, fuzzy #| msgid "No stock location set" msgid "Default stock location label template" msgstr "未设置仓储地点" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "价格" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "令牌" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3638,41 +3646,41 @@ msgstr "" msgid "Image" msgstr "图片" -#: common/models.py:2902 +#: common/models.py:2908 #, fuzzy #| msgid "Image" msgid "Image file" msgstr "图片" -#: common/models.py:2945 +#: common/models.py:2951 #, fuzzy #| msgid "Must be a valid number" msgid "Unit name must be a valid identifier" msgstr "必须是有效数字" -#: common/models.py:2967 +#: common/models.py:2973 #, fuzzy #| msgid "Part name" msgid "Unit name" msgstr "商品名称" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 #, fuzzy #| msgid "Optional Items" msgid "Optional unit symbol" msgstr "可选项目" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 #, fuzzy #| msgid "Destination" msgid "Definition" msgstr "目的地" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3685,21 +3693,30 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 #, fuzzy #| msgid "Received against purchase order" msgid "Items have been received against a return order" msgstr "收到定购单" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3816,7 +3833,7 @@ msgstr "该公司使用的默认货币" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "公司" @@ -3999,7 +4016,7 @@ msgid "Parameter value" msgstr "参数值" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -4027,9 +4044,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -4070,7 +4087,7 @@ msgid "Supplier part description" msgstr "供应商商品描述" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -4080,11 +4097,11 @@ msgstr "供应商商品描述" msgid "Note" msgstr "备注" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" @@ -4114,7 +4131,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4194,8 +4211,8 @@ msgstr "从 URL 下载图片" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4292,7 +4309,7 @@ msgstr "供货商库存" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "采购订单" @@ -4315,7 +4332,7 @@ msgstr "新建采购订单" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "销售订单" @@ -4340,7 +4357,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 #, fuzzy #| msgid "Returned" msgid "Return Orders" @@ -4574,7 +4591,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "库存项" @@ -4692,11 +4709,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4710,7 +4727,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4721,7 +4738,7 @@ msgstr "" msgid "Return Order" msgstr "已退回" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4759,7 +4776,7 @@ msgstr "描述 (可选)" msgid "Select project code for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4787,11 +4804,11 @@ msgstr "此构建订单的优先级" msgid "Company address for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4812,15 +4829,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4828,103 +4845,103 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "数量必须大于0" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "向其出售该商品的公司" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 #, fuzzy #| msgid "Build Order is ready to mark as completed" msgid "Only an open order can be marked as complete" msgstr "构建订单已准备好标记为已完成" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 #, fuzzy #| msgid "Description (optional)" msgid "Line item description (optional)" msgstr "描述 (可选)" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4934,191 +4951,191 @@ msgstr "供应商商品" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "销售价格" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order reference" msgstr "相关生产订单" -#: order/models.py:1737 +#: order/models.py:1753 #, fuzzy #| msgid "Company from which the items are being ordered" msgid "Company from which items are being returned" msgstr "订购该商品的公司" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 #, fuzzy #| msgid "Returned from customer" msgid "Select item to return from customer" msgstr "从客户退货" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5692,12 +5709,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "商品ID" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5706,20 +5723,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "关键词" @@ -5740,11 +5757,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "最低库存" @@ -5770,11 +5787,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5798,7 +5815,7 @@ msgstr "类别路径" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "商品" @@ -5814,7 +5831,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5856,7 +5873,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "默认仓储地点" @@ -5874,14 +5891,14 @@ msgstr "可用库存" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "商品类别" @@ -5944,298 +5961,298 @@ msgstr "IPN 必须匹配正则表达式 {pat}" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "商品名称" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 #, fuzzy #| msgid "Description (optional)" msgid "Part description (optional)" msgstr "描述 (可选)" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "类别" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "商品类别" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1014 +#: part/models.py:982 #, fuzzy #| msgid "User or group responsible for this order" msgid "Owner responsible for this part" msgstr "负责此订单的用户或群组" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6247,324 +6264,324 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 #, fuzzy #| msgid "Key string must be unique" msgid "Choices must be unique" msgstr "关键字必须是唯一的" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 #, fuzzy #| msgid "Invalid choice for parent build" msgid "Invalid choice for parameter value" msgstr "上级生产选项无效" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "默认值" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "BOM项" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "This BOM item has been validated" msgstr "一些库存项已被过度分配" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6987,7 +7004,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7548,83 +7565,128 @@ msgstr "未指定操作" msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "找到匹配条形码数据" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" -msgstr "" - -#: plugin/base/barcodes/api.py:275 +#: plugin/base/barcodes/api.py:302 #, fuzzy -#| msgid "Create new purchase order" -msgid "Invalid purchase order" -msgstr "新建采购订单" +#| msgid "No matching action found" +msgid "No matching part data found" +msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:281 +#: plugin/base/barcodes/api.py:319 #, fuzzy -#| msgid "Stock Location" -msgid "Invalid stock location" -msgstr "仓储地点" +#| msgid "No supplier parts found" +msgid "No matching supplier parts found" +msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:324 +#, fuzzy +#| msgid "No supplier parts found" +msgid "Multiple matching supplier parts found" +msgstr "未找到供应商商品" + +#: plugin/base/barcodes/api.py:349 +#, fuzzy +#| msgid "Delete supplier part" +msgid "Matched supplier part" +msgstr "删除供应商商品" + +#: plugin/base/barcodes/api.py:395 #, fuzzy #| msgid "This build output has already been completed" msgid "Item has already been received" msgstr "此生产产出已经完成" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:430 #, fuzzy -#| msgid "Enter barcode data" -msgid "Invalid supplier barcode" -msgstr "输入条形码数据" +#| msgid "No match found for barcode data" +msgid "No match for supplier barcode" +msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 #, fuzzy #| msgid "Received against purchase order" msgid "Received purchase order line item" msgstr "收到定购单" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" -msgstr "" +#: plugin/base/barcodes/serializers.py:21 +#, fuzzy +#| msgid "Scan Barcode" +msgid "Scanned barcode data" +msgstr "扫描条形码" + +#: plugin/base/barcodes/serializers.py:81 +#, fuzzy +#| msgid "Purchase Order Settings" +msgid "PurchaseOrder to allocate items against" +msgstr "采购订单设置" + +#: plugin/base/barcodes/serializers.py:88 +#, fuzzy +#| msgid "Purchase Order Settings" +msgid "Purchase order is not pending" +msgstr "采购订单设置" + +#: plugin/base/barcodes/serializers.py:105 +#, fuzzy +#| msgid "Purchase Order Settings" +msgid "PurchaseOrder to receive items against" +msgstr "采购订单设置" + +#: plugin/base/barcodes/serializers.py:112 +#, fuzzy +#| msgid "Email backend not configured" +msgid "Purchase order has not been placed" +msgstr "未配置电子邮件后端" + +#: plugin/base/barcodes/serializers.py:119 +#, fuzzy +#| msgid "Location not specified" +msgid "Location to receive items into" +msgstr "未指定仓储地点" + +#: plugin/base/barcodes/serializers.py:126 +#, fuzzy +#| msgid "Create new stock location" +msgid "Cannot select a structural location" +msgstr "新建仓储地点" #: plugin/base/label/label.py:40 msgid "Label printing failed" @@ -7643,8 +7705,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7754,63 +7816,63 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 #, fuzzy #| msgid "Part(s) must be selected before printing labels" msgid "Provides support for scanning DigiKey barcodes" msgstr "打印标签前必须选择商品" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 #, fuzzy #| msgid "Supplier part description" msgid "Supplier Integration - LCSC" msgstr "供应商商品描述" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 #, fuzzy #| msgid "Part(s) must be selected before printing labels" msgid "Provides support for scanning LCSC barcodes" msgstr "打印标签前必须选择商品" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 #, fuzzy #| msgid "Part(s) must be selected before printing labels" msgid "Provides support for scanning Mouser barcodes" msgstr "打印标签前必须选择商品" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 #, fuzzy #| msgid "Supplier part description" msgid "Supplier Integration - TME" msgstr "供应商商品描述" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 #, fuzzy #| msgid "Part(s) must be selected before printing labels" msgid "Provides support for scanning TME barcodes" msgstr "打印标签前必须选择商品" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7842,7 +7904,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7994,19 +8056,19 @@ msgstr "" msgid "Test report" msgstr "" -#: report/helpers.py:13 +#: report/helpers.py:15 msgid "A4" msgstr "" -#: report/helpers.py:14 +#: report/helpers.py:16 msgid "A3" msgstr "" -#: report/helpers.py:15 +#: report/helpers.py:17 msgid "Legal" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:18 msgid "Letter" msgstr "" @@ -8219,6 +8281,24 @@ msgstr "" msgid "Serial" msgstr "" +#: report/templatetags/report.py:95 +msgid "Asset file does not exist" +msgstr "" + +#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#, fuzzy +#| msgid "Part image not found" +msgid "Image file not found" +msgstr "未找到商品图像" + +#: report/templatetags/report.py:230 +msgid "part_image tag requires a Part instance" +msgstr "" + +#: report/templatetags/report.py:269 +msgid "company_image tag requires a Company instance" +msgstr "" + #: stock/admin.py:40 stock/admin.py:126 msgid "Location ID" msgstr "" @@ -8287,7 +8367,7 @@ msgstr "删除模板" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -8295,23 +8375,42 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +#, fuzzy +#| msgid "Part name" +msgid "Part Tree" +msgstr "商品名称" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8339,7 +8438,7 @@ msgstr "仓储地点" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "仓储地点" @@ -8999,7 +9098,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -9008,11 +9107,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9654,9 +9748,9 @@ msgid "Edit" msgstr "编辑" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:535 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "删除" @@ -9788,7 +9882,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2147 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -10144,7 +10238,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:762 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "确认" @@ -10345,6 +10439,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -11141,7 +11236,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2143 templates/js/translated/forms.js:2159 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11596,40 +11691,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:788 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:891 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1461 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1959 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2263 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2477 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3075 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -13042,7 +13137,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "添加" @@ -13717,7 +13812,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "管理员" @@ -13918,7 +14013,7 @@ msgstr "权限" msgid "Important dates" msgstr "重要日期" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13926,80 +14021,95 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 #, fuzzy #| msgid "Token" msgid "API Token" msgstr "令牌" -#: users/models.py:54 +#: users/models.py:71 #, fuzzy #| msgid "Token" msgid "API Tokens" msgstr "令牌" -#: users/models.py:92 +#: users/models.py:109 #, fuzzy #| msgid "Token" msgid "Token Name" msgstr "令牌" -#: users/models.py:93 +#: users/models.py:110 #, fuzzy #| msgid "Company name" msgid "Custom token name" msgstr "公司名称" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 #, fuzzy #| msgid "Last Name" msgid "Last Seen" msgstr "姓氏" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "权限设置" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "群组" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "视图" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "查看项目权限" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "添加项目权限" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "更改" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "编辑项目权限" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "删除项目权限" +#, fuzzy +#~| msgid "Create new purchase order" +#~ msgid "Invalid purchase order" +#~ msgstr "新建采购订单" + +#, fuzzy +#~| msgid "Stock Location" +#~ msgid "Invalid stock location" +#~ msgstr "仓储地点" + +#, fuzzy +#~| msgid "Enter barcode data" +#~ msgid "Invalid supplier barcode" +#~ msgstr "输入条形码数据" + #, fuzzy #~| msgid "Part QR Code" #~ msgid "QC Code" diff --git a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po index e9d8c144f0..356474be21 100644 --- a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-13 12:13+0000\n" +"POT-Creation-Date: 2023-11-20 21:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,10 +55,10 @@ msgstr "" #: InvenTree/fields.py:200 InvenTree/models.py:920 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 #: company/models.py:732 company/templates/company/sidebar.html:37 -#: order/models.py:1088 order/templates/order/po_sidebar.html:11 +#: order/models.py:1104 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 -#: part/models.py:3009 part/templates/part/part_sidebar.html:63 +#: part/models.py:2977 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 #: stock/admin.py:139 stock/models.py:2217 stock/models.py:2325 #: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 @@ -128,7 +128,7 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:615 +#: InvenTree/helpers.py:452 order/models.py:446 order/models.py:623 msgid "Invalid quantity provided" msgstr "" @@ -265,10 +265,10 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2861 company/models.py:128 +#: InvenTree/models.py:482 common/models.py:2867 company/models.py:128 #: company/models.py:386 company/models.py:440 company/models.py:719 -#: order/models.py:234 order/models.py:1092 order/models.py:1450 -#: part/admin.py:39 part/models.py:868 +#: order/models.py:234 order/models.py:1108 order/models.py:1466 +#: part/admin.py:39 part/models.py:836 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:138 templates/js/translated/company.js:1309 @@ -282,7 +282,7 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:302 part/models.py:869 +#: InvenTree/models.py:483 build/models.py:302 part/models.py:837 #: stock/models.py:769 msgid "Link to external URL" msgstr "" @@ -296,13 +296,13 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2321 -#: common/models.py:2322 common/models.py:2534 common/models.py:2535 -#: common/models.py:2791 common/models.py:2792 part/models.py:3017 -#: part/models.py:3102 part/models.py:3181 part/models.py:3201 +#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2327 +#: common/models.py:2328 common/models.py:2540 common/models.py:2541 +#: common/models.py:2797 common/models.py:2798 part/models.py:2985 +#: part/models.py:3070 part/models.py:3149 part/models.py:3169 #: plugin/models.py:229 plugin/models.py:230 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:85 +#: templates/js/translated/stock.js:3007 users/models.py:102 msgid "User" msgstr "" @@ -343,9 +343,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2520 -#: common/models.py:2966 company/models.py:524 label/models.py:116 -#: part/models.py:814 part/models.py:3399 plugin/models.py:42 +#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2526 +#: common/models.py:2972 company/models.py:524 label/models.py:116 +#: part/models.py:782 part/models.py:3367 plugin/models.py:42 #: report/models.py:170 stock/models.py:71 stock/models.py:72 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -369,8 +369,8 @@ msgstr "" #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:226 order/models.py:1116 part/admin.py:191 part/admin.py:272 -#: part/models.py:836 part/models.py:3415 part/templates/part/category.html:82 +#: order/models.py:226 order/models.py:1132 part/admin.py:191 part/admin.py:272 +#: part/models.py:804 part/models.py:3383 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:183 #: report/models.py:611 report/models.py:654 @@ -433,24 +433,24 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:995 +#: InvenTree/models.py:1011 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1036 +#: InvenTree/models.py:1052 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1037 +#: InvenTree/models.py:1053 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3904 +#: InvenTree/serializers.py:61 part/models.py:3872 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:90 company/models.py:150 -#: company/templates/company/company_base.html:106 part/models.py:2856 +#: company/templates/company/company_base.html:106 part/models.py:2824 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -713,7 +713,7 @@ msgstr "" msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1329 +#: InvenTree/status_codes.py:42 order/models.py:1345 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 @@ -920,14 +920,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3796 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3764 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3790 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3758 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -978,7 +978,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:179 +#: templates/js/translated/search.js:186 users/models.py:196 msgid "Build Orders" msgstr "" @@ -994,9 +994,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:167 order/models.py:363 order/models.py:768 -#: order/models.py:1086 order/models.py:1722 part/admin.py:274 -#: part/models.py:3805 part/templates/part/upload_bom.html:54 +#: build/models.py:167 order/models.py:363 order/models.py:776 +#: order/models.py:1102 order/models.py:1738 part/admin.py:274 +#: part/models.py:3773 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1025,11 +1025,11 @@ msgstr "" #: build/models.py:192 build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:907 -#: order/models.py:1193 order/models.py:1308 order/models.py:1309 -#: part/models.py:365 part/models.py:2869 part/models.py:2983 -#: part/models.py:3120 part/models.py:3139 part/models.py:3158 -#: part/models.py:3179 part/models.py:3271 part/models.py:3545 -#: part/models.py:3667 part/models.py:3770 part/models.py:4093 +#: order/models.py:1209 order/models.py:1324 order/models.py:1325 +#: part/models.py:365 part/models.py:2837 part/models.py:2951 +#: part/models.py:3088 part/models.py:3107 part/models.py:3126 +#: part/models.py:3147 part/models.py:3239 part/models.py:3513 +#: part/models.py:3635 part/models.py:3738 part/models.py:4061 #: part/serializers.py:961 part/serializers.py:1394 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1138,7 +1138,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:264 order/models.py:242 part/models.py:1006 +#: build/models.py:264 order/models.py:242 part/models.py:974 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1153,7 +1153,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:272 order/models.py:413 order/models.py:1765 +#: build/models.py:272 order/models.py:413 order/models.py:1781 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,7 +1174,7 @@ msgstr "" #: build/templates/build/detail.html:122 order/models.py:256 #: order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:1013 +#: order/templates/order/sales_order_base.html:228 part/models.py:981 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2207 @@ -1232,39 +1232,39 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:768 build/models.py:843 +#: build/models.py:776 build/models.py:851 msgid "No build output specified" msgstr "" -#: build/models.py:771 +#: build/models.py:779 msgid "Build output is already completed" msgstr "" -#: build/models.py:774 +#: build/models.py:782 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:847 build/serializers.py:218 build/serializers.py:257 +#: build/models.py:855 build/serializers.py:218 build/serializers.py:257 #: build/serializers.py:815 order/models.py:444 order/serializers.py:389 #: order/serializers.py:511 part/serializers.py:1219 part/serializers.py:1558 #: stock/models.py:629 stock/models.py:1420 stock/serializers.py:390 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:852 build/serializers.py:223 +#: build/models.py:860 build/serializers.py:223 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1266 +#: build/models.py:1274 msgid "Build object" msgstr "" -#: build/models.py:1280 build/models.py:1538 build/serializers.py:205 +#: build/models.py:1288 build/models.py:1546 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2343 -#: order/models.py:1073 order/models.py:1644 order/serializers.py:1267 +#: build/templates/build/detail.html:34 common/models.py:2349 +#: order/models.py:1089 order/models.py:1660 order/serializers.py:1267 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2996 part/models.py:3786 +#: part/forms.py:47 part/models.py:2964 part/models.py:3754 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1306,36 +1306,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1281 +#: build/models.py:1289 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1361 +#: build/models.py:1369 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1370 +#: build/models.py:1378 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1380 order/models.py:1600 +#: build/models.py:1388 order/models.py:1616 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1386 order/models.py:1603 +#: build/models.py:1394 order/models.py:1619 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1392 +#: build/models.py:1400 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1453 +#: build/models.py:1461 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1525 build/serializers.py:795 order/serializers.py:1095 +#: build/models.py:1533 build/serializers.py:795 order/serializers.py:1095 #: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 #: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1352,19 +1352,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1526 +#: build/models.py:1534 msgid "Source stock item" msgstr "" -#: build/models.py:1539 +#: build/models.py:1547 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1547 +#: build/models.py:1555 msgid "Install into" msgstr "" -#: build/models.py:1548 +#: build/models.py:1556 msgid "Destination stock item" msgstr "" @@ -1419,7 +1419,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:788 +#: build/serializers.py:332 stock/api.py:873 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1468,8 +1468,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:794 -#: order/models.py:1748 order/serializers.py:534 stock/admin.py:124 +#: build/templates/build/detail.html:62 order/models.py:802 +#: order/models.py:1764 order/serializers.py:534 stock/admin.py:124 #: stock/serializers.py:726 stock/serializers.py:1289 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 @@ -1761,7 +1761,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:238 -#: order/models.py:1098 order/templates/order/order_base.html:186 +#: order/models.py:1114 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1798,8 +1798,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1410 order/models.py:1301 -#: order/models.py:1400 order/models.py:1548 +#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1317 +#: order/models.py:1416 order/models.py:1564 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1849,7 +1849,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1220 +#: build/templates/build/detail.html:49 order/models.py:1236 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -2355,7 +2355,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1327 part/admin.py:55 part/models.py:3550 +#: common/models.py:1327 part/admin.py:55 part/models.py:3518 #: report/models.py:176 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" @@ -2365,7 +2365,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:964 +#: common/models.py:1334 part/admin.py:51 part/admin.py:279 part/models.py:932 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 @@ -2376,7 +2376,7 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1341 part/admin.py:52 part/models.py:970 +#: common/models.py:1341 part/admin.py:52 part/models.py:938 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" @@ -2385,7 +2385,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1348 part/admin.py:53 part/models.py:981 +#: common/models.py:1348 part/admin.py:53 part/models.py:949 msgid "Purchaseable" msgstr "" @@ -2393,7 +2393,7 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1355 part/admin.py:54 part/models.py:986 +#: common/models.py:1355 part/admin.py:54 part/models.py:954 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" @@ -2402,7 +2402,7 @@ msgstr "" msgid "Parts are salable by default" msgstr "" -#: common/models.py:1362 part/admin.py:56 part/models.py:976 +#: common/models.py:1362 part/admin.py:56 part/models.py:944 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 @@ -2413,7 +2413,7 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1369 part/admin.py:57 part/models.py:996 +#: common/models.py:1369 part/admin.py:57 part/models.py:964 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 @@ -2961,558 +2961,566 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1885 common/models.py:2314 +#: common/models.py:1878 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:1879 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:1891 common/models.py:2320 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1925 +#: common/models.py:1931 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1926 +#: common/models.py:1932 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1932 +#: common/models.py:1938 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1933 +#: common/models.py:1939 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1939 +#: common/models.py:1945 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1940 +#: common/models.py:1946 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1946 +#: common/models.py:1952 msgid "Show latest parts" msgstr "" -#: common/models.py:1947 +#: common/models.py:1953 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1953 +#: common/models.py:1959 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1954 +#: common/models.py:1960 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1960 +#: common/models.py:1966 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1961 +#: common/models.py:1967 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1967 +#: common/models.py:1973 msgid "Show low stock" msgstr "" -#: common/models.py:1968 +#: common/models.py:1974 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1974 +#: common/models.py:1980 msgid "Show depleted stock" msgstr "" -#: common/models.py:1975 +#: common/models.py:1981 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1981 +#: common/models.py:1987 msgid "Show needed stock" msgstr "" -#: common/models.py:1982 +#: common/models.py:1988 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1988 +#: common/models.py:1994 msgid "Show expired stock" msgstr "" -#: common/models.py:1989 +#: common/models.py:1995 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1995 +#: common/models.py:2001 msgid "Show stale stock" msgstr "" -#: common/models.py:1996 +#: common/models.py:2002 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2002 +#: common/models.py:2008 msgid "Show pending builds" msgstr "" -#: common/models.py:2003 +#: common/models.py:2009 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2009 +#: common/models.py:2015 msgid "Show overdue builds" msgstr "" -#: common/models.py:2010 +#: common/models.py:2016 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2016 +#: common/models.py:2022 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2017 +#: common/models.py:2023 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2023 +#: common/models.py:2029 msgid "Show overdue POs" msgstr "" -#: common/models.py:2024 +#: common/models.py:2030 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2030 +#: common/models.py:2036 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2031 +#: common/models.py:2037 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2037 +#: common/models.py:2043 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2038 +#: common/models.py:2044 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2044 +#: common/models.py:2050 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2045 +#: common/models.py:2051 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2051 +#: common/models.py:2057 msgid "Show News" msgstr "" -#: common/models.py:2052 +#: common/models.py:2058 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2058 +#: common/models.py:2064 msgid "Inline label display" msgstr "" -#: common/models.py:2059 +#: common/models.py:2065 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2065 +#: common/models.py:2071 msgid "Default label printer" msgstr "" -#: common/models.py:2066 +#: common/models.py:2072 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2072 +#: common/models.py:2078 msgid "Inline report display" msgstr "" -#: common/models.py:2073 +#: common/models.py:2079 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2079 +#: common/models.py:2085 msgid "Search Parts" msgstr "" -#: common/models.py:2080 +#: common/models.py:2086 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2086 +#: common/models.py:2092 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2087 +#: common/models.py:2093 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2093 +#: common/models.py:2099 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2094 +#: common/models.py:2100 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2100 +#: common/models.py:2106 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2101 +#: common/models.py:2107 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2107 +#: common/models.py:2113 msgid "Search Categories" msgstr "" -#: common/models.py:2108 +#: common/models.py:2114 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2114 +#: common/models.py:2120 msgid "Search Stock" msgstr "" -#: common/models.py:2115 +#: common/models.py:2121 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2121 +#: common/models.py:2127 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2122 +#: common/models.py:2128 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2128 +#: common/models.py:2134 msgid "Search Locations" msgstr "" -#: common/models.py:2129 +#: common/models.py:2135 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2135 +#: common/models.py:2141 msgid "Search Companies" msgstr "" -#: common/models.py:2136 +#: common/models.py:2142 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2142 +#: common/models.py:2148 msgid "Search Build Orders" msgstr "" -#: common/models.py:2143 +#: common/models.py:2149 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2149 +#: common/models.py:2155 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2150 +#: common/models.py:2156 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2156 +#: common/models.py:2162 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2157 +#: common/models.py:2163 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2163 +#: common/models.py:2169 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2164 +#: common/models.py:2170 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2170 +#: common/models.py:2176 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2171 +#: common/models.py:2177 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2177 +#: common/models.py:2183 msgid "Search Return Orders" msgstr "" -#: common/models.py:2178 +#: common/models.py:2184 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2184 +#: common/models.py:2190 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2185 +#: common/models.py:2191 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2191 +#: common/models.py:2197 msgid "Search Preview Results" msgstr "" -#: common/models.py:2192 +#: common/models.py:2198 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2198 +#: common/models.py:2204 msgid "Regex Search" msgstr "" -#: common/models.py:2199 +#: common/models.py:2205 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2205 +#: common/models.py:2211 msgid "Whole Word Search" msgstr "" -#: common/models.py:2206 +#: common/models.py:2212 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2212 +#: common/models.py:2218 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2213 +#: common/models.py:2219 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2219 +#: common/models.py:2225 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2220 +#: common/models.py:2226 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2226 +#: common/models.py:2232 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2227 +#: common/models.py:2233 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2233 +#: common/models.py:2239 msgid "Date Format" msgstr "" -#: common/models.py:2234 +#: common/models.py:2240 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2248 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2249 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2255 part/templates/part/detail.html:62 +#: common/models.py:2261 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2256 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2262 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2263 +#: common/models.py:2269 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2272 +#: common/models.py:2278 msgid "Default part label template" msgstr "" -#: common/models.py:2273 +#: common/models.py:2279 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2281 +#: common/models.py:2287 msgid "Default stock item template" msgstr "" -#: common/models.py:2282 +#: common/models.py:2288 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2290 +#: common/models.py:2296 msgid "Default stock location label template" msgstr "" -#: common/models.py:2291 +#: common/models.py:2297 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2299 +#: common/models.py:2305 msgid "Receive error reports" msgstr "" -#: common/models.py:2300 +#: common/models.py:2306 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2344 +#: common/models.py:2350 msgid "Price break quantity" msgstr "" -#: common/models.py:2351 company/serializers.py:484 order/admin.py:41 -#: order/models.py:1131 order/models.py:1933 +#: common/models.py:2357 company/serializers.py:485 order/admin.py:41 +#: order/models.py:1147 order/models.py:1957 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2352 +#: common/models.py:2358 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2511 common/models.py:2689 +#: common/models.py:2517 common/models.py:2695 msgid "Endpoint" msgstr "" -#: common/models.py:2512 +#: common/models.py:2518 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2521 +#: common/models.py:2527 msgid "Name for this webhook" msgstr "" -#: common/models.py:2526 part/admin.py:50 part/models.py:991 +#: common/models.py:2532 part/admin.py:50 part/models.py:959 #: plugin/models.py:48 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:154 +#: templates/js/translated/table_filters.js:712 users/models.py:171 msgid "Active" msgstr "" -#: common/models.py:2527 +#: common/models.py:2533 msgid "Is this webhook active" msgstr "" -#: common/models.py:2541 users/models.py:132 +#: common/models.py:2547 users/models.py:149 msgid "Token" msgstr "" -#: common/models.py:2542 +#: common/models.py:2548 msgid "Token for access" msgstr "" -#: common/models.py:2549 +#: common/models.py:2555 msgid "Secret" msgstr "" -#: common/models.py:2550 +#: common/models.py:2556 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2656 +#: common/models.py:2662 msgid "Message ID" msgstr "" -#: common/models.py:2657 +#: common/models.py:2663 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2665 +#: common/models.py:2671 msgid "Host" msgstr "" -#: common/models.py:2666 +#: common/models.py:2672 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2673 +#: common/models.py:2679 msgid "Header" msgstr "" -#: common/models.py:2674 +#: common/models.py:2680 msgid "Header of this message" msgstr "" -#: common/models.py:2680 +#: common/models.py:2686 msgid "Body" msgstr "" -#: common/models.py:2681 +#: common/models.py:2687 msgid "Body of this message" msgstr "" -#: common/models.py:2690 +#: common/models.py:2696 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2695 +#: common/models.py:2701 msgid "Worked on" msgstr "" -#: common/models.py:2696 +#: common/models.py:2702 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2850 +#: common/models.py:2856 msgid "Id" msgstr "" -#: common/models.py:2856 templates/js/translated/company.js:955 +#: common/models.py:2862 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2866 templates/js/translated/news.js:60 +#: common/models.py:2872 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2871 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2877 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:102 msgid "Author" msgstr "" -#: common/models.py:2876 templates/js/translated/news.js:52 +#: common/models.py:2882 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2881 +#: common/models.py:2887 msgid "Read" msgstr "" -#: common/models.py:2882 +#: common/models.py:2888 msgid "Was this news item read?" msgstr "" -#: common/models.py:2901 company/models.py:139 part/models.py:881 +#: common/models.py:2907 company/models.py:139 part/models.py:849 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3522,31 +3530,31 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2902 +#: common/models.py:2908 msgid "Image file" msgstr "" -#: common/models.py:2945 +#: common/models.py:2951 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2967 +#: common/models.py:2973 msgid "Unit name" msgstr "" -#: common/models.py:2973 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2979 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2974 +#: common/models.py:2980 msgid "Optional unit symbol" msgstr "" -#: common/models.py:2980 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2986 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:2981 +#: common/models.py:2987 msgid "Unit definition" msgstr "" @@ -3559,19 +3567,28 @@ msgstr "" msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 common/notifications.py:305 -msgid "Items Received" +#: common/notifications.py:298 +#, python-brace-format +msgid "{verbose_name} canceled" msgstr "" #: common/notifications.py:300 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:306 common/notifications.py:313 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:308 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:307 +#: common/notifications.py:315 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:419 +#: common/notifications.py:427 msgid "Error raised by plugin" msgstr "" @@ -3688,7 +3705,7 @@ msgstr "" #: company/models.py:232 company/models.py:333 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 +#: company/templates/company/company_base.html:12 stock/api.py:671 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" @@ -3853,7 +3870,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:538 company/templates/company/supplier_part.html:168 -#: part/admin.py:40 part/models.py:955 part/models.py:3406 +#: part/admin.py:40 part/models.py:923 part/models.py:3374 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 @@ -3879,9 +3896,9 @@ msgstr "" #: company/models.py:699 company/templates/company/company_base.html:81 #: company/templates/company/supplier_part.html:129 order/models.py:386 #: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:29 -#: plugin/builtin/suppliers/lcsc.py:30 plugin/builtin/suppliers/mouser.py:29 -#: plugin/builtin/suppliers/tme.py:30 stock/templates/stock/item_base.html:224 +#: part/serializers.py:430 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:510 @@ -3922,7 +3939,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:731 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3808 part/templates/part/upload_bom.html:59 +#: part/admin.py:275 part/models.py:3776 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3932,11 +3949,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "base cost" msgstr "" -#: company/models.py:735 part/models.py:1889 +#: company/models.py:735 part/models.py:1857 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -3966,7 +3983,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:758 part/models.py:1891 +#: company/models.py:758 part/models.py:1859 msgid "multiple" msgstr "" @@ -4044,8 +4061,8 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:782 -#: order/models.py:1736 order/templates/order/return_order_base.html:131 +#: company/templates/company/company_base.html:86 order/models.py:790 +#: order/models.py:1752 order/templates/order/return_order_base.html:131 #: order/templates/order/sales_order_base.html:144 stock/models.py:754 #: stock/models.py:755 stock/serializers.py:1044 #: stock/templates/stock/item_base.html:405 @@ -4142,7 +4159,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:180 +#: users/models.py:197 msgid "Purchase Orders" msgstr "" @@ -4165,7 +4182,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:181 +#: users/models.py:198 msgid "Sales Orders" msgstr "" @@ -4190,7 +4207,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:182 +#: users/models.py:199 msgid "Return Orders" msgstr "" @@ -4406,7 +4423,7 @@ msgstr "" #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:178 +#: users/models.py:195 msgid "Stock Items" msgstr "" @@ -4520,11 +4537,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:231 +#: order/api.py:230 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1408 order/models.py:1177 order/models.py:1260 +#: order/api.py:1407 order/models.py:1193 order/models.py:1276 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4538,7 +4555,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1412 order/models.py:1903 order/models.py:1949 +#: order/api.py:1411 order/models.py:1927 order/models.py:1973 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4547,7 +4564,7 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1414 templates/js/translated/sales_order.js:1042 +#: order/api.py:1413 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" @@ -4575,7 +4592,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:234 order/models.py:1093 order/models.py:1451 +#: order/models.py:234 order/models.py:1109 order/models.py:1467 msgid "Link to external page" msgstr "" @@ -4599,11 +4616,11 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:364 order/models.py:769 +#: order/models.py:364 order/models.py:777 msgid "Order reference" msgstr "" -#: order/models.py:372 order/models.py:794 +#: order/models.py:372 order/models.py:802 msgid "Purchase order status" msgstr "" @@ -4624,15 +4641,15 @@ msgstr "" msgid "received by" msgstr "" -#: order/models.py:407 order/models.py:1759 +#: order/models.py:407 order/models.py:1775 msgid "Issue Date" msgstr "" -#: order/models.py:408 order/models.py:1760 +#: order/models.py:408 order/models.py:1776 msgid "Date order was issued" msgstr "" -#: order/models.py:414 order/models.py:1766 +#: order/models.py:414 order/models.py:1782 msgid "Date order was completed" msgstr "" @@ -4640,99 +4657,99 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:610 +#: order/models.py:618 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:783 +#: order/models.py:791 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:802 order/models.py:1753 +#: order/models.py:810 order/models.py:1769 msgid "Customer Reference " msgstr "" -#: order/models.py:802 order/models.py:1754 +#: order/models.py:810 order/models.py:1770 msgid "Customer order reference code" msgstr "" -#: order/models.py:804 order/models.py:1405 +#: order/models.py:812 order/models.py:1421 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:811 +#: order/models.py:819 msgid "shipped by" msgstr "" -#: order/models.py:860 +#: order/models.py:868 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:864 +#: order/models.py:872 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:867 templates/js/translated/sales_order.js:506 +#: order/models.py:875 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:870 +#: order/models.py:878 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1074 +#: order/models.py:1090 msgid "Item quantity" msgstr "" -#: order/models.py:1086 +#: order/models.py:1102 msgid "Line item reference" msgstr "" -#: order/models.py:1088 +#: order/models.py:1104 msgid "Line item notes" msgstr "" -#: order/models.py:1099 +#: order/models.py:1115 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1117 +#: order/models.py:1133 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1122 +#: order/models.py:1138 msgid "Context" msgstr "" -#: order/models.py:1123 +#: order/models.py:1139 msgid "Additional context for this line" msgstr "" -#: order/models.py:1132 +#: order/models.py:1148 msgid "Unit price" msgstr "" -#: order/models.py:1162 +#: order/models.py:1178 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1170 +#: order/models.py:1186 msgid "deleted" msgstr "" -#: order/models.py:1176 order/models.py:1260 order/models.py:1300 -#: order/models.py:1399 order/models.py:1548 order/models.py:1902 -#: order/models.py:1949 templates/js/translated/sales_order.js:1488 +#: order/models.py:1192 order/models.py:1276 order/models.py:1316 +#: order/models.py:1415 order/models.py:1564 order/models.py:1926 +#: order/models.py:1973 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1194 +#: order/models.py:1210 msgid "Supplier part" msgstr "" -#: order/models.py:1201 order/templates/order/order_base.html:196 +#: order/models.py:1217 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4742,185 +4759,185 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1202 +#: order/models.py:1218 msgid "Number of items received" msgstr "" -#: order/models.py:1209 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1225 stock/models.py:857 stock/serializers.py:319 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1210 +#: order/models.py:1226 msgid "Unit purchase price" msgstr "" -#: order/models.py:1223 +#: order/models.py:1239 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1288 +#: order/models.py:1304 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1293 +#: order/models.py:1309 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1319 part/templates/part/part_pricing.html:107 +#: order/models.py:1335 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1320 +#: order/models.py:1336 msgid "Unit sale price" msgstr "" -#: order/models.py:1330 +#: order/models.py:1346 msgid "Shipped quantity" msgstr "" -#: order/models.py:1406 +#: order/models.py:1422 msgid "Date of shipment" msgstr "" -#: order/models.py:1411 templates/js/translated/sales_order.js:1036 +#: order/models.py:1427 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1412 +#: order/models.py:1428 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1419 +#: order/models.py:1435 msgid "Checked By" msgstr "" -#: order/models.py:1420 +#: order/models.py:1436 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1427 order/models.py:1626 order/serializers.py:1282 +#: order/models.py:1443 order/models.py:1642 order/serializers.py:1282 #: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1428 +#: order/models.py:1444 msgid "Shipment number" msgstr "" -#: order/models.py:1436 +#: order/models.py:1452 msgid "Tracking Number" msgstr "" -#: order/models.py:1437 +#: order/models.py:1453 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1444 +#: order/models.py:1460 msgid "Invoice Number" msgstr "" -#: order/models.py:1445 +#: order/models.py:1461 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1467 +#: order/models.py:1483 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1470 +#: order/models.py:1486 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1583 order/models.py:1585 +#: order/models.py:1599 order/models.py:1601 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1591 +#: order/models.py:1607 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1593 +#: order/models.py:1609 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1596 +#: order/models.py:1612 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1606 order/serializers.py:1146 +#: order/models.py:1622 order/serializers.py:1146 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1609 +#: order/models.py:1625 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1610 +#: order/models.py:1626 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1618 +#: order/models.py:1634 msgid "Line" msgstr "" -#: order/models.py:1627 +#: order/models.py:1643 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1640 order/models.py:1910 +#: order/models.py:1656 order/models.py:1934 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1641 +#: order/models.py:1657 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1644 +#: order/models.py:1660 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1723 +#: order/models.py:1739 msgid "Return Order reference" msgstr "" -#: order/models.py:1737 +#: order/models.py:1753 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1748 +#: order/models.py:1764 msgid "Return order status" msgstr "" -#: order/models.py:1895 +#: order/models.py:1919 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1911 +#: order/models.py:1935 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1916 +#: order/models.py:1940 msgid "Received Date" msgstr "" -#: order/models.py:1917 +#: order/models.py:1941 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1928 templates/js/translated/return_order.js:733 +#: order/models.py:1952 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:1928 +#: order/models.py:1952 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1934 +#: order/models.py:1958 msgid "Cost associated with return or repair for this line item" msgstr "" @@ -5464,12 +5481,12 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:33 part/admin.py:269 part/models.py:3671 part/stocktake.py:217 +#: part/admin.py:33 part/admin.py:269 part/models.py:3639 part/stocktake.py:217 #: stock/admin.py:119 msgid "Part ID" msgstr "" -#: part/admin.py:34 part/admin.py:271 part/models.py:3675 part/stocktake.py:218 +#: part/admin.py:34 part/admin.py:271 part/models.py:3643 part/stocktake.py:218 #: stock/admin.py:120 msgid "Part Name" msgstr "" @@ -5478,20 +5495,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:856 part/templates/part/part_base.html:269 +#: part/admin.py:36 part/models.py:824 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:863 part/templates/part/part_base.html:277 +#: part/admin.py:37 part/models.py:831 part/templates/part/part_base.html:277 #: report/models.py:189 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:38 part/admin.py:195 part/models.py:842 +#: part/admin.py:38 part/admin.py:195 part/models.py:810 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" @@ -5512,11 +5529,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:831 part/templates/part/part_base.html:177 +#: part/admin.py:46 part/models.py:799 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:948 part/templates/part/part_base.html:203 +#: part/admin.py:47 part/models.py:916 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -5542,11 +5559,11 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2934 templates/js/translated/part.js:969 +#: part/admin.py:66 part/models.py:2902 templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2940 templates/js/translated/part.js:979 +#: part/admin.py:67 part/models.py:2908 templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" @@ -5570,7 +5587,7 @@ msgstr "" #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:175 +#: templates/navbar.html:24 users/models.py:192 msgid "Parts" msgstr "" @@ -5586,7 +5603,7 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3679 +#: part/admin.py:270 part/models.py:3647 msgid "Part IPN" msgstr "" @@ -5628,7 +5645,7 @@ msgstr "" msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:890 +#: part/bom.py:174 part/models.py:97 part/models.py:858 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" @@ -5646,14 +5663,14 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3620 part/templates/part/category.html:16 +#: part/models.py:79 part/models.py:3588 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:80 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:174 +#: users/models.py:191 msgid "Part Categories" msgstr "" @@ -5715,294 +5732,294 @@ msgstr "" msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:770 +#: part/models.py:738 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:775 +#: part/models.py:743 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:789 +#: part/models.py:757 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:813 part/models.py:3676 +#: part/models.py:781 part/models.py:3644 msgid "Part name" msgstr "" -#: part/models.py:819 +#: part/models.py:787 msgid "Is Template" msgstr "" -#: part/models.py:820 +#: part/models.py:788 msgid "Is this part a template part?" msgstr "" -#: part/models.py:830 +#: part/models.py:798 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:837 +#: part/models.py:805 msgid "Part description (optional)" msgstr "" -#: part/models.py:843 +#: part/models.py:811 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:850 part/models.py:3199 part/models.py:3619 +#: part/models.py:818 part/models.py:3167 part/models.py:3587 #: part/serializers.py:353 part/serializers.py:967 -#: part/templates/part/part_base.html:260 +#: part/templates/part/part_base.html:260 stock/api.py:633 #: templates/InvenTree/settings/settings_staff_js.html:280 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:851 +#: part/models.py:819 msgid "Part category" msgstr "" -#: part/models.py:857 +#: part/models.py:825 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:830 msgid "Part revision or version number" msgstr "" -#: part/models.py:888 +#: part/models.py:856 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:933 part/templates/part/part_base.html:376 +#: part/models.py:901 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:934 +#: part/models.py:902 msgid "Default supplier part" msgstr "" -#: part/models.py:941 +#: part/models.py:909 msgid "Default Expiry" msgstr "" -#: part/models.py:942 +#: part/models.py:910 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:949 +#: part/models.py:917 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:956 +#: part/models.py:924 msgid "Units of measure for this part" msgstr "" -#: part/models.py:965 +#: part/models.py:933 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:971 +#: part/models.py:939 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:977 +#: part/models.py:945 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:982 +#: part/models.py:950 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:987 +#: part/models.py:955 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:992 +#: part/models.py:960 msgid "Is this part active?" msgstr "" -#: part/models.py:997 +#: part/models.py:965 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "BOM checksum" msgstr "" -#: part/models.py:999 +#: part/models.py:967 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1002 +#: part/models.py:970 msgid "BOM checked by" msgstr "" -#: part/models.py:1004 +#: part/models.py:972 msgid "BOM checked date" msgstr "" -#: part/models.py:1008 +#: part/models.py:976 msgid "Creation User" msgstr "" -#: part/models.py:1014 +#: part/models.py:982 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1020 part/templates/part/part_base.html:339 +#: part/models.py:988 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1891 +#: part/models.py:1859 msgid "Sell multiple" msgstr "" -#: part/models.py:2857 +#: part/models.py:2825 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2874 +#: part/models.py:2842 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:2843 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2880 +#: part/models.py:2848 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2881 +#: part/models.py:2849 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2886 +#: part/models.py:2854 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2887 +#: part/models.py:2855 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2892 +#: part/models.py:2860 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2893 +#: part/models.py:2861 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2898 +#: part/models.py:2866 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:2867 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2904 +#: part/models.py:2872 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2905 +#: part/models.py:2873 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2910 +#: part/models.py:2878 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2911 +#: part/models.py:2879 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2916 +#: part/models.py:2884 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2917 +#: part/models.py:2885 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2922 +#: part/models.py:2890 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:2891 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2928 +#: part/models.py:2896 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:2897 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2935 +#: part/models.py:2903 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2941 +#: part/models.py:2909 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2946 +#: part/models.py:2914 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:2915 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:2920 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2953 +#: part/models.py:2921 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2958 +#: part/models.py:2926 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:2927 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2964 +#: part/models.py:2932 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2965 +#: part/models.py:2933 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2984 +#: part/models.py:2952 msgid "Part for stocktake" msgstr "" -#: part/models.py:2989 +#: part/models.py:2957 msgid "Item Count" msgstr "" -#: part/models.py:2990 +#: part/models.py:2958 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2997 +#: part/models.py:2965 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3001 part/models.py:3081 +#: part/models.py:2969 part/models.py:3049 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6014,318 +6031,318 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3002 +#: part/models.py:2970 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3010 +#: part/models.py:2978 msgid "Additional notes" msgstr "" -#: part/models.py:3018 +#: part/models.py:2986 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3023 +#: part/models.py:2991 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:2992 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3029 +#: part/models.py:2997 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3030 +#: part/models.py:2998 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:509 +#: part/models.py:3056 templates/InvenTree/settings/settings_staff_js.html:509 msgid "Report" msgstr "" -#: part/models.py:3089 +#: part/models.py:3057 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3094 templates/InvenTree/settings/settings_staff_js.html:516 +#: part/models.py:3062 templates/InvenTree/settings/settings_staff_js.html:516 msgid "Part Count" msgstr "" -#: part/models.py:3095 +#: part/models.py:3063 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3103 +#: part/models.py:3071 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3239 +#: part/models.py:3207 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3256 +#: part/models.py:3224 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3276 templates/js/translated/part.js:2866 +#: part/models.py:3244 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3277 +#: part/models.py:3245 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3282 +#: part/models.py:3250 msgid "Test Description" msgstr "" -#: part/models.py:3283 +#: part/models.py:3251 msgid "Enter description for this test" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2875 +#: part/models.py:3256 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3289 +#: part/models.py:3257 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2883 +#: part/models.py:3262 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3295 +#: part/models.py:3263 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3300 templates/js/translated/part.js:2890 +#: part/models.py:3268 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3301 +#: part/models.py:3269 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3346 +#: part/models.py:3314 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3351 +#: part/models.py:3319 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3369 +#: part/models.py:3337 msgid "Choices must be unique" msgstr "" -#: part/models.py:3385 +#: part/models.py:3353 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3400 +#: part/models.py:3368 msgid "Parameter Name" msgstr "" -#: part/models.py:3406 +#: part/models.py:3374 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3416 +#: part/models.py:3384 msgid "Parameter description" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1627 +#: part/models.py:3390 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3423 +#: part/models.py:3391 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3428 templates/js/translated/part.js:1636 +#: part/models.py:3396 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3429 +#: part/models.py:3397 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3503 +#: part/models.py:3471 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3545 +#: part/models.py:3513 msgid "Parent Part" msgstr "" -#: part/models.py:3550 part/models.py:3625 part/models.py:3626 +#: part/models.py:3518 part/models.py:3593 part/models.py:3594 #: templates/InvenTree/settings/settings_staff_js.html:275 msgid "Parameter Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Data" msgstr "" -#: part/models.py:3555 +#: part/models.py:3523 msgid "Parameter Value" msgstr "" -#: part/models.py:3630 templates/InvenTree/settings/settings_staff_js.html:284 +#: part/models.py:3598 templates/InvenTree/settings/settings_staff_js.html:284 msgid "Default Value" msgstr "" -#: part/models.py:3631 +#: part/models.py:3599 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3668 +#: part/models.py:3636 msgid "Part ID or part name" msgstr "" -#: part/models.py:3672 +#: part/models.py:3640 msgid "Unique part ID value" msgstr "" -#: part/models.py:3680 +#: part/models.py:3648 msgid "Part IPN value" msgstr "" -#: part/models.py:3683 +#: part/models.py:3651 msgid "Level" msgstr "" -#: part/models.py:3684 +#: part/models.py:3652 msgid "BOM level" msgstr "" -#: part/models.py:3690 part/models.py:4085 +#: part/models.py:3658 part/models.py:4053 stock/api.py:648 msgid "BOM Item" msgstr "" -#: part/models.py:3771 +#: part/models.py:3739 msgid "Select parent part" msgstr "" -#: part/models.py:3779 +#: part/models.py:3747 msgid "Sub part" msgstr "" -#: part/models.py:3780 +#: part/models.py:3748 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3786 +#: part/models.py:3754 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3791 +#: part/models.py:3759 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3797 +#: part/models.py:3765 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3801 part/templates/part/upload_bom.html:55 +#: part/models.py:3769 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3802 +#: part/models.py:3770 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3805 +#: part/models.py:3773 msgid "BOM item reference" msgstr "" -#: part/models.py:3808 +#: part/models.py:3776 msgid "BOM item notes" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "Checksum" msgstr "" -#: part/models.py:3812 +#: part/models.py:3780 msgid "BOM line checksum" msgstr "" -#: part/models.py:3817 templates/js/translated/table_filters.js:174 +#: part/models.py:3785 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3818 +#: part/models.py:3786 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:57 +#: part/models.py:3791 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3824 +#: part/models.py:3792 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3829 part/templates/part/upload_bom.html:56 +#: part/models.py:3797 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3830 +#: part/models.py:3798 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3916 stock/models.py:613 +#: part/models.py:3884 stock/models.py:613 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3925 part/models.py:3927 +#: part/models.py:3893 part/models.py:3895 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4052 +#: part/models.py:4020 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4073 +#: part/models.py:4041 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4086 +#: part/models.py:4054 msgid "Parent BOM item" msgstr "" -#: part/models.py:4094 +#: part/models.py:4062 msgid "Substitute part" msgstr "" -#: part/models.py:4109 +#: part/models.py:4077 msgid "Part 1" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Part 2" msgstr "" -#: part/models.py:4113 +#: part/models.py:4081 msgid "Select Related Part" msgstr "" -#: part/models.py:4130 +#: part/models.py:4098 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4134 +#: part/models.py:4102 msgid "Duplicate relationship already exists" msgstr "" @@ -6738,7 +6755,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:176 +#: templates/js/translated/stock.js:2186 users/models.py:193 msgid "Stocktake" msgstr "" @@ -7295,72 +7312,99 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:56 plugin/base/barcodes/api.py:111 -#: plugin/base/barcodes/api.py:269 -msgid "Missing barcode data" -msgstr "" - -#: plugin/base/barcodes/api.py:82 +#: plugin/base/barcodes/api.py:123 plugin/base/barcodes/api.py:339 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:86 +#: plugin/base/barcodes/api.py:127 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:121 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:217 -msgid "No match found for provided value" +#: plugin/base/barcodes/api.py:302 +msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:275 -msgid "Invalid purchase order" +#: plugin/base/barcodes/api.py:319 +msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:281 -msgid "Invalid stock location" +#: plugin/base/barcodes/api.py:324 +msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:292 +#: plugin/base/barcodes/api.py:349 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:395 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:314 -msgid "Invalid supplier barcode" +#: plugin/base/barcodes/api.py:430 +msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:170 -msgid "Supplier barcode doesn't contain order number" +#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:183 +#: plugin/base/barcodes/mixins.py:198 #, python-brace-format -msgid "Found multiple placed purchase orders for '{order_number}'" +msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:185 +#: plugin/base/barcodes/mixins.py:201 #, python-brace-format -msgid "Failed to find placed purchase order for '{order_number}'" +msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:215 +#: plugin/base/barcodes/mixins.py:207 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:436 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:248 +#: plugin/base/barcodes/mixins.py:469 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:259 +#: plugin/base/barcodes/mixins.py:480 msgid "Received purchase order line item" msgstr "" -#: plugin/base/barcodes/mixins.py:301 plugin/base/barcodes/mixins.py:324 -msgid "Found multiple matching supplier parts for barcode" +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:81 +msgid "PurchaseOrder to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:88 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:112 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:119 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:126 +msgid "Cannot select a structural location" msgstr "" #: plugin/base/label/label.py:40 @@ -7380,8 +7424,8 @@ msgstr "" #: plugin/builtin/integration/currency_exchange.py:22 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:56 -#: plugin/builtin/suppliers/digikey.py:24 plugin/builtin/suppliers/lcsc.py:25 -#: plugin/builtin/suppliers/mouser.py:24 plugin/builtin/suppliers/tme.py:25 +#: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 +#: plugin/builtin/suppliers/mouser.py:19 plugin/builtin/suppliers/tme.py:21 msgid "InvenTree contributors" msgstr "" @@ -7483,51 +7527,51 @@ msgstr "" msgid "No labels were generated" msgstr "" -#: plugin/builtin/suppliers/digikey.py:21 +#: plugin/builtin/suppliers/digikey.py:16 msgid "Supplier Integration - DigiKey" msgstr "" -#: plugin/builtin/suppliers/digikey.py:22 +#: plugin/builtin/suppliers/digikey.py:17 msgid "Provides support for scanning DigiKey barcodes" msgstr "" -#: plugin/builtin/suppliers/digikey.py:30 +#: plugin/builtin/suppliers/digikey.py:26 msgid "The Supplier which acts as 'DigiKey'" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:22 +#: plugin/builtin/suppliers/lcsc.py:18 msgid "Supplier Integration - LCSC" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:23 +#: plugin/builtin/suppliers/lcsc.py:19 msgid "Provides support for scanning LCSC barcodes" msgstr "" -#: plugin/builtin/suppliers/lcsc.py:31 +#: plugin/builtin/suppliers/lcsc.py:27 msgid "The Supplier which acts as 'LCSC'" msgstr "" -#: plugin/builtin/suppliers/mouser.py:21 +#: plugin/builtin/suppliers/mouser.py:16 msgid "Supplier Integration - Mouser" msgstr "" -#: plugin/builtin/suppliers/mouser.py:22 +#: plugin/builtin/suppliers/mouser.py:17 msgid "Provides support for scanning Mouser barcodes" msgstr "" -#: plugin/builtin/suppliers/mouser.py:30 +#: plugin/builtin/suppliers/mouser.py:25 msgid "The Supplier which acts as 'Mouser'" msgstr "" -#: plugin/builtin/suppliers/tme.py:22 +#: plugin/builtin/suppliers/tme.py:18 msgid "Supplier Integration - TME" msgstr "" -#: plugin/builtin/suppliers/tme.py:23 +#: plugin/builtin/suppliers/tme.py:19 msgid "Provides support for scanning TME barcodes" msgstr "" -#: plugin/builtin/suppliers/tme.py:31 +#: plugin/builtin/suppliers/tme.py:27 msgid "The Supplier which acts as 'TME'" msgstr "" @@ -7556,7 +7600,7 @@ msgstr "" msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:73 +#: plugin/models.py:34 users/models.py:90 msgid "Key" msgstr "" @@ -7706,19 +7750,19 @@ msgstr "" msgid "Test report" msgstr "" -#: report/helpers.py:13 +#: report/helpers.py:15 msgid "A4" msgstr "" -#: report/helpers.py:14 +#: report/helpers.py:16 msgid "A3" msgstr "" -#: report/helpers.py:15 +#: report/helpers.py:17 msgid "Legal" msgstr "" -#: report/helpers.py:16 +#: report/helpers.py:18 msgid "Letter" msgstr "" @@ -7921,6 +7965,22 @@ msgstr "" msgid "Serial" msgstr "" +#: report/templatetags/report.py:95 +msgid "Asset file does not exist" +msgstr "" + +#: report/templatetags/report.py:144 report/templatetags/report.py:209 +msgid "Image file not found" +msgstr "" + +#: report/templatetags/report.py:230 +msgid "part_image tag requires a Part instance" +msgstr "" + +#: report/templatetags/report.py:269 +msgid "company_image tag requires a Company instance" +msgstr "" + #: stock/admin.py:40 stock/admin.py:126 msgid "Location ID" msgstr "" @@ -7985,7 +8045,7 @@ msgstr "" #: stock/admin.py:149 stock/models.py:823 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:98 +#: templates/js/translated/stock.js:2200 users/models.py:115 msgid "Expiry Date" msgstr "" @@ -7993,23 +8053,40 @@ msgstr "" msgid "External Location" msgstr "" -#: stock/api.py:693 +#: stock/api.py:659 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:688 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:694 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: templates/js/translated/table_filters.js:441 +msgid "Stale" +msgstr "" + +#: stock/api.py:778 msgid "Quantity is required" msgstr "" -#: stock/api.py:700 +#: stock/api.py:785 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:728 +#: stock/api.py:813 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:737 +#: stock/api.py:822 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:760 +#: stock/api.py:845 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" @@ -8033,7 +8110,7 @@ msgstr "" #: stock/models.py:119 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:177 +#: users/models.py:194 msgid "Stock Locations" msgstr "" @@ -8669,7 +8746,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:148 +#: templates/js/translated/table_filters.js:435 users/models.py:165 msgid "Expired" msgstr "" @@ -8678,11 +8755,6 @@ msgstr "" msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:439 -#: templates/js/translated/table_filters.js:441 -msgid "Stale" -msgstr "" - #: stock/templates/stock/item_base.html:455 msgid "No stocktake performed" msgstr "" @@ -9306,9 +9378,9 @@ msgid "Edit" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:535 templates/js/translated/helpers.js:105 +#: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:393 +#: templates/js/translated/stock.js:245 users/models.py:410 msgid "Delete" msgstr "" @@ -9412,7 +9484,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2147 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2155 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -9760,7 +9832,7 @@ msgstr "" msgid "Please confirm that %(email)s is an email address for user %(user_display)s." msgstr "" -#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:762 +#: templates/account/email_confirm.html:21 templates/js/translated/forms.js:770 msgid "Confirm" msgstr "" @@ -9961,6 +10033,7 @@ msgid "There are pending database migrations which require attention" msgstr "" #: templates/email/build_order_completed.html:9 +#: templates/email/canceled_order_assigned.html:9 #: templates/email/new_order_assigned.html:9 #: templates/email/overdue_build_order.html:9 #: templates/email/overdue_purchase_order.html:9 @@ -10713,7 +10786,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2105 templates/js/translated/build.js:2470 -#: templates/js/translated/forms.js:2143 templates/js/translated/forms.js:2159 +#: templates/js/translated/forms.js:2151 templates/js/translated/forms.js:2167 #: templates/js/translated/part.js:2314 templates/js/translated/part.js:2740 #: templates/js/translated/stock.js:1953 templates/js/translated/stock.js:2681 msgid "Select" @@ -11114,40 +11187,40 @@ msgstr "" msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:788 +#: templates/js/translated/forms.js:796 msgid "Keep this form open" msgstr "" -#: templates/js/translated/forms.js:891 +#: templates/js/translated/forms.js:899 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1461 templates/modals.html:19 +#: templates/js/translated/forms.js:1469 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1959 +#: templates/js/translated/forms.js:1967 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2263 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2271 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2477 +#: templates/js/translated/forms.js:2485 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3063 +#: templates/js/translated/forms.js:3071 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3075 +#: templates/js/translated/forms.js:3083 msgid "Select Columns" msgstr "" @@ -12480,7 +12553,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:389 +#: templates/js/translated/stock.js:1042 users/models.py:406 msgid "Add" msgstr "" @@ -13119,7 +13192,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:173 +#: templates/navbar.html:144 users/models.py:190 msgid "Admin" msgstr "" @@ -13314,7 +13387,7 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:112 +#: users/authentication.py:29 users/models.py:129 msgid "Token has been revoked" msgstr "" @@ -13322,66 +13395,66 @@ msgstr "" msgid "Token has expired" msgstr "" -#: users/models.py:53 +#: users/models.py:70 msgid "API Token" msgstr "" -#: users/models.py:54 +#: users/models.py:71 msgid "API Tokens" msgstr "" -#: users/models.py:92 +#: users/models.py:109 msgid "Token Name" msgstr "" -#: users/models.py:93 +#: users/models.py:110 msgid "Custom token name" msgstr "" -#: users/models.py:99 +#: users/models.py:116 msgid "Token expiry date" msgstr "" -#: users/models.py:105 +#: users/models.py:122 msgid "Last Seen" msgstr "" -#: users/models.py:106 +#: users/models.py:123 msgid "Last time the token was used" msgstr "" -#: users/models.py:111 +#: users/models.py:128 msgid "Revoked" msgstr "" -#: users/models.py:376 +#: users/models.py:393 msgid "Permission set" msgstr "" -#: users/models.py:384 +#: users/models.py:401 msgid "Group" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "View" msgstr "" -#: users/models.py:387 +#: users/models.py:404 msgid "Permission to view items" msgstr "" -#: users/models.py:389 +#: users/models.py:406 msgid "Permission to add items" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Change" msgstr "" -#: users/models.py:391 +#: users/models.py:408 msgid "Permissions to edit items" msgstr "" -#: users/models.py:393 +#: users/models.py:410 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index 4e6b859aa2..fd7bade3d7 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -66,17 +66,16 @@ class GeneralExtraLineList(APIDownloadMixin): filter_backends = SEARCH_ORDER_FILTER ordering_fields = [ - 'title', 'quantity', 'note', 'reference', ] search_fields = [ - 'title', 'quantity', 'note', - 'reference' + 'reference', + 'description', ] filterset_fields = [ diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index bac42c3969..7da338a4c1 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -522,7 +522,7 @@ class PurchaseOrder(TotalPriceMixin, Order): @property def is_pending(self): """Return True if the PurchaseOrder is 'pending'""" - return self.status == PurchaseOrderStatus.PENDING + return self.status == PurchaseOrderStatus.PENDING.value @property def is_open(self): @@ -536,8 +536,8 @@ class PurchaseOrder(TotalPriceMixin, Order): - Status is PENDING """ return self.status in [ - PurchaseOrderStatus.PLACED, - PurchaseOrderStatus.PENDING + PurchaseOrderStatus.PLACED.value, + PurchaseOrderStatus.PENDING.value ] @transaction.atomic diff --git a/InvenTree/part/helpers.py b/InvenTree/part/helpers.py new file mode 100644 index 0000000000..08ee86d3b5 --- /dev/null +++ b/InvenTree/part/helpers.py @@ -0,0 +1,68 @@ +"""Various helper functions for the part app""" + +import logging + +from jinja2 import Environment + +logger = logging.getLogger('inventree') + + +# Compiled template for rendering the 'full_name' attribute of a Part +_part_full_name_template = None +_part_full_name_template_string = '' + + +def compile_full_name_template(*args, **kwargs): + """Recompile the template for rendering the 'full_name' attribute of a Part. + + This function is called whenever the 'PART_NAME_FORMAT' setting is changed. + """ + + from common.models import InvenTreeSetting + + global _part_full_name_template + global _part_full_name_template_string + + template_string = InvenTreeSetting.get_setting('PART_NAME_FORMAT', '') + + # Skip if the template string has not changed + if template_string == _part_full_name_template_string and _part_full_name_template is not None: + return _part_full_name_template + + _part_full_name_template_string = template_string + + env = Environment( + autoescape=True, + variable_start_string='{{', + variable_end_string='}}' + ) + + # Compile the template + try: + _part_full_name_template = env.from_string(template_string) + except Exception: + _part_full_name_template = None + + return _part_full_name_template + + +def render_part_full_name(part) -> str: + """Render the 'full_name' attribute of a Part. + + To improve render efficiency, we re-compile the template whenever the setting is changed + + Args: + part: The Part object to render + """ + + template = compile_full_name_template() + + if template: + try: + return template.render(part=part) + except Exception as e: + logger.warning("exception while trying to create full name for part %s: %s", part.name, e) + + # Fallback to the default format + elements = [el for el in [part.IPN, part.name, part.revision] if el] + return ' | '.join(elements) diff --git a/InvenTree/part/migrations/0119_auto_20231120_0457.py b/InvenTree/part/migrations/0119_auto_20231120_0457.py new file mode 100644 index 0000000000..f63ccc70db --- /dev/null +++ b/InvenTree/part/migrations/0119_auto_20231120_0457.py @@ -0,0 +1,36 @@ +# Generated by Django 3.2.23 on 2023-11-20 04:57 + +import InvenTree.fields +from django.db import migrations +import djmoney.models.fields +import djmoney.models.validators + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0118_auto_20231024_1844'), + ] + + operations = [ + migrations.AddField( + model_name='partpricing', + name='override_max', + field=InvenTree.fields.InvenTreeModelMoneyField(blank=True, currency_choices=[], decimal_places=6, default_currency='', help_text='Override maximum cost', max_digits=19, null=True, validators=[djmoney.models.validators.MinMoneyValidator(0)], verbose_name='Maximum Cost'), + ), + migrations.AddField( + model_name='partpricing', + name='override_max_currency', + field=djmoney.models.fields.CurrencyField(choices=[], default='', editable=False, max_length=3, null=True), + ), + migrations.AddField( + model_name='partpricing', + name='override_min', + field=InvenTree.fields.InvenTreeModelMoneyField(blank=True, currency_choices=[], decimal_places=6, default_currency='', help_text='Override minimum cost', max_digits=19, null=True, validators=[djmoney.models.validators.MinMoneyValidator(0)], verbose_name='Minimum Cost'), + ), + migrations.AddField( + model_name='partpricing', + name='override_min_currency', + field=djmoney.models.fields.CurrencyField(choices=[], default='', editable=False, max_length=3, null=True), + ), + ] diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 745704f580..33fdd16ee1 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -27,7 +27,6 @@ from django_cleanup import cleanup from djmoney.contrib.exchange.exceptions import MissingRate from djmoney.contrib.exchange.models import convert_money from djmoney.money import Money -from jinja2 import Template from mptt.exceptions import InvalidMove from mptt.managers import TreeManager from mptt.models import MPTTModel, TreeForeignKey @@ -40,6 +39,7 @@ import InvenTree.conversion import InvenTree.fields import InvenTree.ready import InvenTree.tasks +import part.helpers as part_helpers import part.settings as part_settings import users.models from build import models as BuildModels @@ -692,41 +692,9 @@ class Part(InvenTreeBarcodeMixin, InvenTreeNotesMixin, MetadataMixin, MPTTModel) @property def full_name(self): - """Format a 'full name' for this Part based on the format PART_NAME_FORMAT defined in InvenTree settings. + """Format a 'full name' for this Part based on the format PART_NAME_FORMAT defined in InvenTree settings""" - As a failsafe option, the following is done: - - - IPN (if not null) - - Part name - - Part variant (if not null) - - Elements are joined by the | character - """ - full_name_pattern = InvenTreeSetting.get_setting('PART_NAME_FORMAT') - - try: - context = {'part': self} - template_string = Template(full_name_pattern) - full_name = template_string.render(context) - - return full_name - - except Exception as attr_err: - - logger.warning("exception while trying to create full name for part %s: %s", self.name, attr_err) - - # Fallback to default format - elements = [] - - if self.IPN: - elements.append(self.IPN) - - elements.append(self.name) - - if self.revision: - elements.append(self.revision) - - return ' | '.join(elements) + return part_helpers.render_part_full_name(self) def get_absolute_url(self): """Return the web URL for viewing this part.""" @@ -2401,6 +2369,7 @@ class PartPricing(common.models.MetaMixin): def update_pricing(self, counter: int = 0, cascade: bool = True): """Recalculate all cost data for the referenced Part instance""" # If importing data, skip pricing update + if InvenTree.ready.isImportingData(): return @@ -2730,6 +2699,7 @@ class PartPricing(common.models.MetaMixin): Here we simply take the minimum / maximum values of the other calculated fields. """ + overall_min = None overall_max = None @@ -2790,7 +2760,14 @@ class PartPricing(common.models.MetaMixin): if self.internal_cost_max is not None: overall_max = self.internal_cost_max + if self.override_min is not None: + overall_min = self.convert(self.override_min) + self.overall_min = overall_min + + if self.override_max is not None: + overall_max = self.convert(self.override_max) + self.overall_max = overall_max def update_sale_cost(self, save=True): @@ -2929,6 +2906,18 @@ class PartPricing(common.models.MetaMixin): help_text=_('Calculated maximum cost of variant parts'), ) + override_min = InvenTree.fields.InvenTreeModelMoneyField( + null=True, blank=True, + verbose_name=_('Minimum Cost'), + help_text=_('Override minimum cost'), + ) + + override_max = InvenTree.fields.InvenTreeModelMoneyField( + null=True, blank=True, + verbose_name=_('Maximum Cost'), + help_text=_('Override maximum cost'), + ) + overall_min = InvenTree.fields.InvenTreeModelMoneyField( null=True, blank=True, verbose_name=_('Minimum Cost'), diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index e2897a3c14..8bf7db4d03 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -5,6 +5,7 @@ import io import logging from decimal import Decimal +from django.core.exceptions import ValidationError from django.core.files.base import ContentFile from django.core.validators import MinValueValidator from django.db import IntegrityError, models, transaction @@ -13,11 +14,14 @@ from django.db.models.functions import Coalesce from django.urls import reverse_lazy from django.utils.translation import gettext_lazy as _ +from djmoney.contrib.exchange.exceptions import MissingRate +from djmoney.contrib.exchange.models import convert_money from rest_framework import serializers from sql_util.utils import SubqueryCount, SubquerySum from taggit.serializers import TagListSerializerField import common.models +import common.settings import company.models import InvenTree.helpers import InvenTree.serializers @@ -819,7 +823,7 @@ class PartSerializer(InvenTree.serializers.RemoteImageMixin, InvenTree.serialize # Create initial stock entry if initial_stock: quantity = initial_stock['quantity'] - location = initial_stock['location'] or instance.default_location + location = initial_stock.get('location', None) or instance.default_location if quantity > 0: stockitem = stock.models.StockItem( @@ -1042,6 +1046,10 @@ class PartPricingSerializer(InvenTree.serializers.InvenTreeModelSerializer): 'supplier_price_max', 'variant_cost_min', 'variant_cost_max', + 'override_min', + 'override_min_currency', + 'override_max', + 'override_max_currency', 'overall_min', 'overall_max', 'sale_price_min', @@ -1073,6 +1081,30 @@ class PartPricingSerializer(InvenTree.serializers.InvenTreeModelSerializer): variant_cost_min = InvenTree.serializers.InvenTreeMoneySerializer(allow_null=True, read_only=True) variant_cost_max = InvenTree.serializers.InvenTreeMoneySerializer(allow_null=True, read_only=True) + override_min = InvenTree.serializers.InvenTreeMoneySerializer( + label=_('Minimum Price'), + help_text=_('Override calculated value for minimum price'), + allow_null=True, read_only=False, required=False, + ) + + override_min_currency = serializers.ChoiceField( + label=_('Minimum price currency'), + read_only=False, required=False, + choices=common.settings.currency_code_mappings(), + ) + + override_max = InvenTree.serializers.InvenTreeMoneySerializer( + label=_('Maximum Price'), + help_text=_('Override calculated value for maximum price'), + allow_null=True, read_only=False, required=False, + ) + + override_max_currency = serializers.ChoiceField( + label=_('Maximum price currency'), + read_only=False, required=False, + choices=common.settings.currency_code_mappings(), + ) + overall_min = InvenTree.serializers.InvenTreeMoneySerializer(allow_null=True, read_only=True) overall_max = InvenTree.serializers.InvenTreeMoneySerializer(allow_null=True, read_only=True) @@ -1086,18 +1118,44 @@ class PartPricingSerializer(InvenTree.serializers.InvenTreeModelSerializer): write_only=True, label=_('Update'), help_text=_('Update pricing for this part'), - default=False, - required=False, + default=False, required=False, allow_null=True, ) + def validate(self, data): + """Validate supplied pricing data""" + + super().validate(data) + + # Check that override_min is not greater than override_max + override_min = data.get('override_min', None) + override_max = data.get('override_max', None) + + default_currency = common.settings.currency_code_default() + + if override_min is not None and override_max is not None: + + try: + override_min = convert_money(override_min, default_currency) + override_max = convert_money(override_max, default_currency) + except MissingRate: + raise ValidationError(_(f'Could not convert from provided currencies to {default_currency}')) + + if override_min > override_max: + raise ValidationError({ + 'override_min': _('Minimum price must not be greater than maximum price'), + 'override_max': _('Maximum price must not be less than minimum price') + }) + + return data + def save(self): """Called when the serializer is saved""" - data = self.validated_data - if InvenTree.helpers.str2bool(data.get('update', False)): - # Update part pricing - pricing = self.instance - pricing.update_pricing() + super().save() + + # Update part pricing + pricing = self.instance + pricing.update_pricing() class PartRelationSerializer(InvenTree.serializers.InvenTreeModelSerializer): diff --git a/InvenTree/part/templates/part/prices.html b/InvenTree/part/templates/part/prices.html index 62f082b69d..0328e84e15 100644 --- a/InvenTree/part/templates/part/prices.html +++ b/InvenTree/part/templates/part/prices.html @@ -14,6 +14,9 @@ + @@ -97,6 +100,14 @@ {% render_currency pricing.variant_cost_max %} {% endif %} + {% if pricing.override_min or pricing.override_max %} + + + {% trans "Pricing Overrides" %} + {% render_currency pricing.override_min currency=pricing.override_min_currency %} + {% render_currency pricing.override_max currency=pricing.override_max_currency %} + + {% endif %} {% trans "Overall Pricing" %} diff --git a/InvenTree/part/templates/part/pricing_javascript.html b/InvenTree/part/templates/part/pricing_javascript.html index 94592b2af1..42976e530e 100644 --- a/InvenTree/part/templates/part/pricing_javascript.html +++ b/InvenTree/part/templates/part/pricing_javascript.html @@ -19,6 +19,25 @@ $('#part-pricing-refresh').click(function() { ); }); +$('#part-pricing-edit').click(function() { + constructForm('{% url "api-part-pricing" part.pk %}', { + title: '{% trans "Update Pricing" %}', + fields: { + override_min: {}, + override_min_currency: {}, + override_max: {}, + override_max_currency: {}, + update: { + hidden: true, + value: true, + } + }, + onSuccess: function(response) { + location.reload(); + } + }); +}); + // Internal Pricebreaks {% if show_internal_price and roles.sales_order.view %} initPriceBreakSet($('#internal-price-break-table'), { diff --git a/InvenTree/plugin/base/barcodes/api.py b/InvenTree/plugin/base/barcodes/api.py index c802150ff8..6d89631604 100644 --- a/InvenTree/plugin/base/barcodes/api.py +++ b/InvenTree/plugin/base/barcodes/api.py @@ -7,69 +7,73 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import permissions from rest_framework.exceptions import PermissionDenied, ValidationError +from rest_framework.generics import CreateAPIView from rest_framework.response import Response -from rest_framework.views import APIView from InvenTree.helpers import hash_barcode -from order.models import PurchaseOrder from plugin import registry from plugin.builtin.barcodes.inventree_barcode import \ InvenTreeInternalBarcodePlugin -from stock.models import StockLocation from users.models import RuleSet +from . import serializers as barcode_serializers + logger = logging.getLogger('inventree') -class BarcodeScan(APIView): - """Endpoint for handling generic barcode scan requests. +class BarcodeView(CreateAPIView): + """Custom view class for handling a barcode scan""" - Barcode data are decoded by the client application, - and sent to this endpoint (as a JSON object) for validation. + # Default serializer class (can be overridden) + serializer_class = barcode_serializers.BarcodeSerializer - A barcode could follow the internal InvenTree barcode format, - or it could match to a third-party barcode format (e.g. Digikey). - - When a barcode is sent to the server, the following parameters must be provided: - - - barcode: The raw barcode data - - plugins: - Third-party barcode formats may be supported using 'plugins' - (more information to follow) - - hashing: - Barcode hashes are calculated using MD5 - """ + def queryset(self): + """This API view does not have a queryset""" + return None + # Default permission classes (can be overridden) permission_classes = [ permissions.IsAuthenticated, ] - def post(self, request, *args, **kwargs): - """Respond to a barcode POST request. + def create(self, request, *args, **kwargs): + """Handle create method - override default create""" - Check if required info was provided and then run though the plugin steps or try to match up- + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + data = serializer.validated_data + + barcode = str(data.pop('barcode')).strip() + + return self.handle_barcode(barcode, request, **data) + + def handle_barcode(self, barcode: str, request, **kwargs): + """Handle barcode scan. + + Arguments: + barcode: Raw barcode value + request: HTTP request object + + kwargs: + Any custom fields passed by the specific serializer """ - data = request.data + raise NotImplementedError(f"handle_barcode not implemented for {self.__class__}") - barcode_data = data.get('barcode', None) + def scan_barcode(self, barcode: str, request, **kwargs): + """Perform a generic 'scan' of the provided barcode data. - if not barcode_data: - raise ValidationError({'barcode': _('Missing barcode data')}) + Check each loaded plugin, and return the first valid match + """ - # Note: the default barcode handlers are loaded (and thus run) first plugins = registry.with_mixin('barcode') - barcode_hash = hash_barcode(barcode_data) - # Look for a barcode plugin which knows how to deal with this barcode plugin = None response = {} for current_plugin in plugins: - result = current_plugin.scan(barcode_data) + result = current_plugin.scan(barcode) if result is None: continue @@ -86,57 +90,74 @@ class BarcodeScan(APIView): break response['plugin'] = plugin.name if plugin else None - response['barcode_data'] = barcode_data - response['barcode_hash'] = barcode_hash + response['barcode_data'] = barcode + response['barcode_hash'] = hash_barcode(barcode) - # A plugin has not been found! - if plugin is None: - response['error'] = _('No match found for barcode data') - - raise ValidationError(response) - else: - response['success'] = _('Match found for barcode data') - return Response(response) + return response -class BarcodeAssign(APIView): +class BarcodeScan(BarcodeView): + """Endpoint for handling generic barcode scan requests. + + Barcode data are decoded by the client application, + and sent to this endpoint (as a JSON object) for validation. + + A barcode could follow the internal InvenTree barcode format, + or it could match to a third-party barcode format (e.g. Digikey). + """ + + def handle_barcode(self, barcode: str, request, **kwargs): + """Perform barcode scan action + + Arguments: + barcode: Raw barcode value + request: HTTP request object + + kwargs: + Any custom fields passed by the specific serializer + """ + + result = self.scan_barcode(barcode, request, **kwargs) + + if result['plugin'] is None: + result['error'] = _('No match found for barcode data') + + raise ValidationError(result) + + result['success'] = _('Match found for barcode data') + return Response(result) + + +class BarcodeAssign(BarcodeView): """Endpoint for assigning a barcode to a stock item. - This only works if the barcode is not already associated with an object in the database - If the barcode does not match an object, then the barcode hash is assigned to the StockItem """ - permission_classes = [ - permissions.IsAuthenticated - ] + serializer_class = barcode_serializers.BarcodeAssignSerializer - def post(self, request, *args, **kwargs): - """Respond to a barcode assign POST request. + def handle_barcode(self, barcode: str, request, **kwargs): + """Respond to a barcode assign request. Checks inputs and assign barcode (hash) to StockItem. """ - data = request.data - - barcode_data = data.get('barcode', None) - - if not barcode_data: - raise ValidationError({'barcode': _('Missing barcode data')}) # Here we only check against 'InvenTree' plugins plugins = registry.with_mixin('barcode', builtin=True) # First check if the provided barcode matches an existing database entry for plugin in plugins: - result = plugin.scan(barcode_data) + result = plugin.scan(barcode) if result is not None: result["error"] = _("Barcode matches existing item") result["plugin"] = plugin.name - result["barcode_data"] = barcode_data + result["barcode_data"] = barcode raise ValidationError(result) - barcode_hash = hash_barcode(barcode_data) + barcode_hash = hash_barcode(barcode) valid_labels = [] @@ -144,39 +165,32 @@ class BarcodeAssign(APIView): label = model.barcode_model_type() valid_labels.append(label) - if label in data: - try: - instance = model.objects.get(pk=data[label]) + if instance := kwargs.get(label, None): - # Check that the user has the required permission - app_label = model._meta.app_label - model_name = model._meta.model_name + # Check that the user has the required permission + app_label = model._meta.app_label + model_name = model._meta.model_name - table = f"{app_label}_{model_name}" + table = f"{app_label}_{model_name}" - if not RuleSet.check_table_permission(request.user, table, "change"): - raise PermissionDenied({ - "error": f"You do not have the required permissions for {table}" - }) - - instance.assign_barcode( - barcode_data=barcode_data, - barcode_hash=barcode_hash, - ) - - return Response({ - 'success': f"Assigned barcode to {label} instance", - label: { - 'pk': instance.pk, - }, - "barcode_data": barcode_data, - "barcode_hash": barcode_hash, + if not RuleSet.check_table_permission(request.user, table, "change"): + raise PermissionDenied({ + "error": f"You do not have the required permissions for {table}" }) - except (ValueError, model.DoesNotExist): - raise ValidationError({ - 'error': f"No matching {label} instance found in database", - }) + instance.assign_barcode( + barcode_data=barcode, + barcode_hash=barcode_hash, + ) + + return Response({ + 'success': f"Assigned barcode to {label} instance", + label: { + 'pk': instance.pk, + }, + "barcode_data": barcode, + "barcode_hash": barcode_hash, + }) # If we got here, it means that no valid model types were provided raise ValidationError({ @@ -184,23 +198,23 @@ class BarcodeAssign(APIView): }) -class BarcodeUnassign(APIView): +class BarcodeUnassign(BarcodeView): """Endpoint for unlinking / unassigning a custom barcode from a database object""" - permission_classes = [ - permissions.IsAuthenticated, - ] + serializer_class = barcode_serializers.BarcodeUnassignSerializer + + def create(self, request, *args, **kwargs): + """Respond to a barcode unassign request.""" + + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + data = serializer.validated_data - def post(self, request, *args, **kwargs): - """Respond to a barcode unassign POST request""" - # The following database models support assignment of third-party barcodes supported_models = InvenTreeInternalBarcodePlugin.get_supported_barcode_models() supported_labels = [model.barcode_model_type() for model in supported_models] model_names = ', '.join(supported_labels) - data = request.data - matched_labels = [] for label in supported_labels: @@ -219,15 +233,10 @@ class BarcodeUnassign(APIView): # At this stage, we know that we have received a single valid field for model in supported_models: + label = model.barcode_model_type() - if label in data: - try: - instance = model.objects.get(pk=data[label]) - except (ValueError, model.DoesNotExist): - raise ValidationError({ - label: _('No match found for provided value') - }) + if instance := data.get(label, None): # Check that the user has the required permission app_label = model._meta.app_label @@ -253,7 +262,99 @@ class BarcodeUnassign(APIView): }) -class BarcodePOReceive(APIView): +class BarcodePOAllocate(BarcodeView): + """Endpoint for allocating parts to a purchase order by scanning their barcode + + Note that the scanned barcode may point to: + + - A Part object + - A ManufacturerPart object + - A SupplierPart object + """ + + serializer_class = barcode_serializers.BarcodePOAllocateSerializer + + def get_supplier_part(self, purchase_order, part=None, supplier_part=None, manufacturer_part=None): + """Return a single matching SupplierPart (or else raise an exception) + + Arguments: + purchase_order: PurchaseOrder object + part: Part object (optional) + supplier_part: SupplierPart object (optional) + manufacturer_part: ManufacturerPart object (optional) + + Returns: + SupplierPart object + + Raises: + ValidationError if no matching SupplierPart is found + + """ + + import company.models + + supplier = purchase_order.supplier + + supplier_parts = company.models.SupplierPart.objects.filter(supplier=supplier) + + if not part and not supplier_part and not manufacturer_part: + raise ValidationError({ + 'error': _('No matching part data found'), + }) + + if part: + if part_id := part.get('pk', None): + supplier_parts = supplier_parts.filter(part__pk=part_id) + + if supplier_part: + if supplier_part_id := supplier_part.get('pk', None): + supplier_parts = supplier_parts.filter(pk=supplier_part_id) + + if manufacturer_part: + if manufacturer_part_id := manufacturer_part.get('pk', None): + supplier_parts = supplier_parts.filter(manufacturer_part__pk=manufacturer_part_id) + + if supplier_parts.count() == 0: + raise ValidationError({ + "error": _("No matching supplier parts found") + }) + + if supplier_parts.count() > 1: + raise ValidationError({ + "error": _("Multiple matching supplier parts found") + }) + + # At this stage, we have a single matching supplier part + return supplier_parts.first() + + def handle_barcode(self, barcode: str, request, **kwargs): + """Scan the provided barcode data""" + + # The purchase order is provided as part of the request + purchase_order = kwargs.get('purchase_order') + + result = self.scan_barcode(barcode, request, **kwargs) + + if result['plugin'] is None: + result['error'] = _('No match found for barcode data') + raise ValidationError(result) + + supplier_part = self.get_supplier_part( + purchase_order, + part=result.get('part', None), + supplier_part=result.get('supplierpart', None), + manufacturer_part=result.get('manufacturerpart', None), + ) + + result['success'] = _("Matched supplier part") + result['supplierpart'] = supplier_part.format_matched_response() + + # TODO: Determine the 'quantity to order' for the supplier part + + return Response(result) + + +class BarcodePOReceive(BarcodeView): """Endpoint for handling receiving parts by scanning their barcode. Barcode data are decoded by the client application, @@ -269,32 +370,16 @@ class BarcodePOReceive(APIView): - location: The destination location for the received item (optional) """ - permission_classes = [ - permissions.IsAuthenticated, - ] + serializer_class = barcode_serializers.BarcodePOReceiveSerializer - def post(self, request, *args, **kwargs): - """Respond to a barcode POST request.""" + def handle_barcode(self, barcode: str, request, **kwargs): + """Handle a barcode scan for a purchase order item.""" - data = request.data + logger.debug("BarcodePOReceive: scanned barcode - '%s'", barcode) - if not (barcode_data := data.get("barcode")): - raise ValidationError({"barcode": _("Missing barcode data")}) - - logger.debug("BarcodePOReceive: scanned barcode - '%s'", barcode_data) - - purchase_order = None - - if purchase_order_pk := data.get("purchase_order"): - purchase_order = PurchaseOrder.objects.filter(pk=purchase_order_pk).first() - if not purchase_order: - raise ValidationError({"purchase_order": _("Invalid purchase order")}) - - location = None - if (location_pk := data.get("location")): - location = StockLocation.objects.get(pk=location_pk) - if not location: - raise ValidationError({"location": _("Invalid stock location")}) + # Extract optional fields from the dataset + purchase_order = kwargs.get('purchase_order', None) + location = kwargs.get('location', None) plugins = registry.with_mixin("barcode") @@ -303,8 +388,10 @@ class BarcodePOReceive(APIView): response = {} internal_barcode_plugin = next(filter( - lambda plugin: plugin.name == "InvenTreeBarcode", plugins)) - if internal_barcode_plugin.scan(barcode_data): + lambda plugin: plugin.name == "InvenTreeBarcode", plugins + )) + + if internal_barcode_plugin.scan(barcode): response["error"] = _("Item has already been received") raise ValidationError(response) @@ -314,7 +401,7 @@ class BarcodePOReceive(APIView): for current_plugin in plugins: result = current_plugin.scan_receive_item( - barcode_data, + barcode, request.user, purchase_order=purchase_order, location=location, @@ -335,8 +422,8 @@ class BarcodePOReceive(APIView): break response["plugin"] = plugin.name if plugin else None - response["barcode_data"] = barcode_data - response["barcode_hash"] = hash_barcode(barcode_data) + response["barcode_data"] = barcode + response["barcode_hash"] = hash_barcode(barcode) # A plugin has not been found! if plugin is None: @@ -358,6 +445,9 @@ barcode_api_urls = [ # Receive a purchase order item by scanning its barcode path("po-receive/", BarcodePOReceive.as_view(), name="api-barcode-po-receive"), + # Allocate parts to a purchase order by scanning their barcode + path("po-allocate/", BarcodePOAllocate.as_view(), name="api-barcode-po-allocate"), + # Catch-all performs barcode 'scan' re_path(r'^.*$', BarcodeScan.as_view(), name='api-barcode-scan'), ] diff --git a/InvenTree/plugin/base/barcodes/serializers.py b/InvenTree/plugin/base/barcodes/serializers.py new file mode 100644 index 0000000000..584e3605ef --- /dev/null +++ b/InvenTree/plugin/base/barcodes/serializers.py @@ -0,0 +1,128 @@ +"""DRF serializers for barcode scanning API""" + +from django.core.exceptions import ValidationError +from django.utils.translation import gettext_lazy as _ + +from rest_framework import serializers + +import order.models +import stock.models +from InvenTree.status_codes import PurchaseOrderStatus +from plugin.builtin.barcodes.inventree_barcode import \ + InvenTreeInternalBarcodePlugin + + +class BarcodeSerializer(serializers.Serializer): + """Generic serializer for receiving barcode data""" + + MAX_BARCODE_LENGTH = 4095 + + barcode = serializers.CharField( + required=True, help_text=_('Scanned barcode data'), + max_length=MAX_BARCODE_LENGTH, + ) + + +class BarcodeAssignMixin(serializers.Serializer): + """Serializer for linking and unlinking barcode to an internal class""" + + def __init__(self, *args, **kwargs): + """Generate serializer fields for each supported model type""" + + super().__init__(*args, **kwargs) + + for model in InvenTreeInternalBarcodePlugin.get_supported_barcode_models(): + self.fields[model.barcode_model_type()] = serializers.PrimaryKeyRelatedField( + queryset=model.objects.all(), + required=False, allow_null=True, + label=model._meta.verbose_name, + ) + + @staticmethod + def get_model_fields(): + """Return a list of model fields""" + fields = [ + model.barcode_model_type() for model in InvenTreeInternalBarcodePlugin.get_supported_barcode_models() + ] + + return fields + + +class BarcodeAssignSerializer(BarcodeAssignMixin, BarcodeSerializer): + """Serializer class for linking a barcode to an internal model""" + + class Meta: + """Meta class for BarcodeAssignSerializer""" + + fields = [ + 'barcode', + *BarcodeAssignMixin.get_model_fields() + ] + + +class BarcodeUnassignSerializer(BarcodeAssignMixin): + """Serializer class for unlinking a barcode from an internal model""" + + class Meta: + """Meta class for BarcodeUnlinkSerializer""" + + fields = BarcodeAssignMixin.get_model_fields() + + +class BarcodePOAllocateSerializer(BarcodeSerializer): + """Serializer for allocating items against a purchase order. + + The scanned barcode could be a Part, ManufacturerPart or SupplierPart object + """ + + purchase_order = serializers.PrimaryKeyRelatedField( + queryset=order.models.PurchaseOrder.objects.all(), + required=True, + help_text=_('PurchaseOrder to allocate items against'), + ) + + def validate_purchase_order(self, order: order.models.PurchaseOrder): + """Validate the provided order""" + + if order.status != PurchaseOrderStatus.PENDING.value: + raise ValidationError(_("Purchase order is not pending")) + + return order + + +class BarcodePOReceiveSerializer(BarcodeSerializer): + """Serializer for receiving items against a purchase order. + + The following additional fields may be specified: + + - purchase_order: PurchaseOrder object to receive items against + - location: Location to receive items into + """ + + purchase_order = serializers.PrimaryKeyRelatedField( + queryset=order.models.PurchaseOrder.objects.all(), + required=False, allow_null=True, + help_text=_('PurchaseOrder to receive items against'), + ) + + def validate_purchase_order(self, order: order.models.PurchaseOrder): + """Validate the provided order""" + + if order and order.status != PurchaseOrderStatus.PLACED.value: + raise ValidationError(_("Purchase order has not been placed")) + + return order + + location = serializers.PrimaryKeyRelatedField( + queryset=stock.models.StockLocation.objects.all(), + required=False, allow_null=True, + help_text=_('Location to receive items into'), + ) + + def validate_location(self, location: stock.models.StockLocation): + """Validate the provided location""" + + if location and location.structural: + raise ValidationError(_("Cannot select a structural location")) + + return location diff --git a/InvenTree/plugin/base/barcodes/test_barcode.py b/InvenTree/plugin/base/barcodes/test_barcode.py index aff5b411f7..8223b40973 100644 --- a/InvenTree/plugin/base/barcodes/test_barcode.py +++ b/InvenTree/plugin/base/barcodes/test_barcode.py @@ -2,9 +2,8 @@ from django.urls import reverse -from rest_framework import status - from InvenTree.unit_test import InvenTreeAPITestCase +from part.models import Part from stock.models import StockItem @@ -24,150 +23,128 @@ class BarcodeAPITest(InvenTreeAPITestCase): self.scan_url = reverse('api-barcode-scan') self.assign_url = reverse('api-barcode-link') + self.unassign_url = reverse('api-barcode-unlink') - def postBarcode(self, url, barcode): + def postBarcode(self, url, barcode, expected_code=None): """Post barcode and return results.""" - return self.client.post(url, format='json', data={'barcode': str(barcode)}) + return self.post(url, format='json', data={'barcode': str(barcode)}, expected_code=expected_code) def test_invalid(self): """Test that invalid requests fail.""" # test scan url - response = self.client.post(self.scan_url, format='json', data={}) - self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.post(self.scan_url, format='json', data={}, expected_code=400) # test wrong assign urls - response = self.client.post(self.assign_url, format='json', data={}) - self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - - response = self.client.post(self.assign_url, format='json', data={'barcode': '123'}) - self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - - response = self.client.post(self.assign_url, format='json', data={'barcode': '123', 'stockitem': '123'}) - self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.post(self.assign_url, format='json', data={}, expected_code=400) + self.post(self.assign_url, format='json', data={'barcode': '123'}, expected_code=400) + self.post(self.assign_url, format='json', data={'barcode': '123', 'stockitem': '123'}, expected_code=400) def test_empty(self): """Test an empty barcode scan. - Ensure that all required data is in the respomse. + Ensure that all required data is in the response. """ - response = self.postBarcode(self.scan_url, '') - - self.assertEqual(response.status_code, 400) + response = self.postBarcode(self.scan_url, '', expected_code=400) data = response.data self.assertIn('barcode', data) - self.assertIn('Missing barcode data', str(response.data['barcode'])) + + self.assertIn('This field may not be blank', str(response.data['barcode'])) def test_find_part(self): """Test that we can lookup a part based on ID.""" - response = self.client.post( + + part = Part.objects.first() + + response = self.post( self.scan_url, { - 'barcode': { - 'part': 1, - }, + 'barcode': f'{{"part": {part.pk}}}', }, - format='json', + expected_code=200 ) - self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertIn('part', response.data) self.assertIn('barcode_data', response.data) - self.assertEqual(response.data['part']['pk'], 1) + self.assertEqual(response.data['part']['pk'], part.pk) def test_invalid_part(self): """Test response for invalid part.""" - response = self.client.post( + response = self.post( self.scan_url, { - 'barcode': { - 'part': 999999999, - } + 'barcode': '{"part": 999999999}' }, - format='json' + expected_code=400 ) - self.assertEqual(response.status_code, 400) self.assertIn('error', response.data) def test_find_stock_item(self): """Test that we can lookup a stock item based on ID.""" - response = self.client.post( + + item = StockItem.objects.first() + + response = self.post( self.scan_url, { - 'barcode': { - 'stockitem': 1, - } + 'barcode': item.format_barcode(), }, - format='json', + expected_code=200 ) - self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertIn('stockitem', response.data) self.assertIn('barcode_data', response.data) - self.assertEqual(response.data['stockitem']['pk'], 1) + self.assertEqual(response.data['stockitem']['pk'], item.pk) def test_invalid_item(self): """Test response for invalid stock item.""" - response = self.client.post( + response = self.post( self.scan_url, { - 'barcode': { - 'stockitem': 999999999, - } + 'barcode': '{"stockitem": 999999999}' }, - format='json' + expected_code=400 ) - self.assertEqual(response.status_code, 400) self.assertIn('error', response.data) def test_find_location(self): """Test that we can lookup a stock location based on ID.""" - response = self.client.post( + response = self.post( self.scan_url, { - 'barcode': { - 'stocklocation': 1, - }, + 'barcode': '{"stocklocation": 1}', }, - format='json' + expected_code=200 ) - self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertIn('stocklocation', response.data) self.assertIn('barcode_data', response.data) self.assertEqual(response.data['stocklocation']['pk'], 1) def test_invalid_location(self): """Test response for an invalid location.""" - response = self.client.post( + response = self.post( self.scan_url, { - 'barcode': { - 'stocklocation': 999999999, - } + 'barcode': '{"stocklocation": 999999999}' }, - format='json' + expected_code=400 ) - self.assertEqual(response.status_code, 400) self.assertIn('error', response.data) def test_integer_barcode(self): """Test scan of an integer barcode.""" - response = self.postBarcode(self.scan_url, '123456789') - - self.assertEqual(response.status_code, 400) + response = self.postBarcode(self.scan_url, '123456789', expected_code=400) data = response.data self.assertIn('error', data) def test_array_barcode(self): """Test scan of barcode with string encoded array.""" - response = self.postBarcode(self.scan_url, "['foo', 'bar']") - - self.assertEqual(response.status_code, 400) + response = self.postBarcode(self.scan_url, "['foo', 'bar']", expected_code=400) data = response.data self.assertIn('error', data) @@ -176,11 +153,9 @@ class BarcodeAPITest(InvenTreeAPITestCase): """Test that a barcode is generated with a scan.""" item = StockItem.objects.get(pk=522) - response = self.postBarcode(self.scan_url, item.format_barcode()) + response = self.postBarcode(self.scan_url, item.format_barcode(), expected_code=200) data = response.data - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertIn('stockitem', data) pk = data['stockitem']['pk'] @@ -197,37 +172,88 @@ class BarcodeAPITest(InvenTreeAPITestCase): barcode_data = 'A-TEST-BARCODE-STRING' - response = self.client.post( + response = self.post( self.assign_url, format='json', data={ 'barcode': barcode_data, 'stockitem': item.pk - } + }, + expected_code=200 ) data = response.data - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertIn('success', data) result_hash = data['barcode_hash'] # Read the item out from the database again - item = StockItem.objects.get(pk=522) + item.refresh_from_db() + self.assertEqual(item.barcode_data, barcode_data) self.assertEqual(result_hash, item.barcode_hash) # Ensure that the same barcode hash cannot be assigned to a different stock item! - response = self.client.post( + response = self.post( self.assign_url, format='json', data={ 'barcode': barcode_data, 'stockitem': 521 - } + }, + expected_code=400 ) - data = response.data + self.assertIn('error', response.data) + self.assertNotIn('success', response.data) - self.assertIn('error', data) - self.assertNotIn('success', data) + # Check that we can now unassign a barcode + response = self.post( + self.unassign_url, + { + 'stockitem': item.pk, + }, + expected_code=200 + ) + + item.refresh_from_db() + self.assertEqual(item.barcode_data, '') + + # Check that the 'unassign' endpoint fails if the stockitem is invalid + response = self.post( + self.unassign_url, + { + 'stockitem': 999999999, + }, + expected_code=400 + ) + + def test_unassign_endpoint(self): + """Test that the unassign endpoint works as expected""" + + invalid_keys = ['cat', 'dog', 'fish'] + + # Invalid key should fail + for k in invalid_keys: + response = self.post( + self.unassign_url, + { + k: 123 + }, + expected_code=400 + ) + + self.assertIn("Missing data: Provide one of", str(response.data['error'])) + + valid_keys = ['build', 'salesorder', 'part'] + + # Valid key but invalid pk should fail + for k in valid_keys: + response = self.post( + self.unassign_url, + { + k: 999999999 + }, + expected_code=400 + ) + + self.assertIn("object does not exist", str(response.data[k])) diff --git a/InvenTree/plugin/base/label/test_label_mixin.py b/InvenTree/plugin/base/label/test_label_mixin.py index 6824ca55f7..2eedbcc156 100644 --- a/InvenTree/plugin/base/label/test_label_mixin.py +++ b/InvenTree/plugin/base/label/test_label_mixin.py @@ -7,6 +7,7 @@ from unittest import mock from django.apps import apps from django.urls import reverse +from pdfminer.high_level import extract_text from PIL import Image from InvenTree.unit_test import InvenTreeAPITestCase @@ -138,6 +139,7 @@ class LabelMixinTests(InvenTreeAPITestCase): # Lookup references part = Part.objects.first() + parts = Part.objects.all()[:2] plugin_ref = 'samplelabelprinter' label = PartLabel.objects.first() @@ -158,13 +160,13 @@ class LabelMixinTests(InvenTreeAPITestCase): self.get(url, expected_code=200) # Print multiple parts - self.get(self.do_url(Part.objects.all()[:2], plugin_ref, label), expected_code=200) + self.get(self.do_url(parts, plugin_ref, label), expected_code=200) # Print multiple parts without a plugin - self.get(self.do_url(Part.objects.all()[:2], None, label), expected_code=200) + self.get(self.do_url(parts, None, label), expected_code=200) # Print multiple parts without a plugin in debug mode - response = self.get(self.do_url(Part.objects.all()[:2], None, label), expected_code=200) + response = self.get(self.do_url(parts, None, label), expected_code=200) data = json.loads(response.content) self.assertIn('file', data) @@ -177,9 +179,9 @@ class LabelMixinTests(InvenTreeAPITestCase): self.assertTrue(os.path.exists('label.pdf')) # Read the raw .pdf data - ensure it contains some sensible information - with open('label.pdf', 'rb') as f: - pdf_data = str(f.read()) - self.assertIn('WeasyPrint', pdf_data) + filetext = extract_text('label.pdf') + matched = [part.name in filetext for part in parts] + self.assertIn(True, matched) # Check that the .png file has already been created self.assertTrue(os.path.exists('label.png')) @@ -193,24 +195,25 @@ class LabelMixinTests(InvenTreeAPITestCase): apps.get_app_config('label').create_labels() # Lookup references + parts = Part.objects.all()[:2] plugin_ref = 'samplelabelprinter' label = PartLabel.objects.first() self.do_activate_plugin() # test options response - options = self.options(self.do_url(Part.objects.all()[:2], plugin_ref, label), expected_code=200).json() + options = self.options(self.do_url(parts, plugin_ref, label), expected_code=200).json() self.assertTrue("amount" in options["actions"]["POST"]) plg = registry.get_plugin(plugin_ref) with mock.patch.object(plg, "print_label") as print_label: # wrong value type - res = self.post(self.do_url(Part.objects.all()[:2], plugin_ref, label), data={"amount": "-no-valid-int-"}, expected_code=400).json() + res = self.post(self.do_url(parts, plugin_ref, label), data={"amount": "-no-valid-int-"}, expected_code=400).json() self.assertTrue("amount" in res) print_label.assert_not_called() # correct value type - self.post(self.do_url(Part.objects.all()[:2], plugin_ref, label), data={"amount": 13}, expected_code=200).json() + self.post(self.do_url(parts, plugin_ref, label), data={"amount": 13}, expected_code=200).json() self.assertEqual(print_label.call_args.kwargs["printing_options"], {"amount": 13}) def test_printing_endpoints(self): diff --git a/InvenTree/plugin/builtin/barcodes/inventree_barcode.py b/InvenTree/plugin/builtin/barcodes/inventree_barcode.py index 8dcd3ca38c..7b0e7a4f7f 100644 --- a/InvenTree/plugin/builtin/barcodes/inventree_barcode.py +++ b/InvenTree/plugin/builtin/barcodes/inventree_barcode.py @@ -34,37 +34,14 @@ class InvenTreeInternalBarcodePlugin(BarcodeMixin, InvenTreePlugin): def format_matched_response(self, label, model, instance): """Format a response for the scanned data""" - data = { - 'pk': instance.pk - } - # Add in the API URL if available - if hasattr(model, 'get_api_url'): - data['api_url'] = f"{model.get_api_url()}{instance.pk}/" - - # Add in the web URL if available - if hasattr(instance, 'get_absolute_url'): - url = instance.get_absolute_url() - data['web_url'] = url - else: - url = None # pragma: no cover - - response = { - label: data - } - - if url is not None: - response['url'] = url - - return response + return {label: instance.format_matched_response()} def scan(self, barcode_data): """Scan a barcode against this plugin. Here we are looking for a dict object which contains a reference to a particular InvenTree database object """ - # Create hash from raw barcode data - barcode_hash = hash_barcode(barcode_data) # Attempt to coerce the barcode data into a dict object # This is the internal barcode representation that InvenTree uses @@ -78,9 +55,11 @@ class InvenTreeInternalBarcodePlugin(BarcodeMixin, InvenTreePlugin): except json.JSONDecodeError: pass + supported_models = self.get_supported_barcode_models() + if barcode_dict is not None and type(barcode_dict) is dict: # Look for various matches. First good match will be returned - for model in self.get_supported_barcode_models(): + for model in supported_models: label = model.barcode_model_type() if label in barcode_dict: @@ -91,8 +70,11 @@ class InvenTreeInternalBarcodePlugin(BarcodeMixin, InvenTreePlugin): except (ValueError, model.DoesNotExist): pass + # Create hash from raw barcode data + barcode_hash = hash_barcode(barcode_data) + # If no "direct" hits are found, look for assigned third-party barcodes - for model in self.get_supported_barcode_models(): + for model in supported_models: label = model.barcode_model_type() instance = model.lookup_barcode(barcode_hash) diff --git a/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py b/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py index 82e76089c1..2635471a3f 100644 --- a/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py +++ b/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py @@ -80,8 +80,8 @@ class TestInvenTreeBarcode(InvenTreeAPITestCase): # Fail with too many fields provided response = self.unassign( { - 'stockitem': 'abcde', - 'part': 'abcde', + 'stockitem': stock.models.StockItem.objects.first().pk, + 'part': part.models.Part.objects.first().pk, }, expected_code=400, ) @@ -96,17 +96,17 @@ class TestInvenTreeBarcode(InvenTreeAPITestCase): expected_code=400, ) - self.assertIn('No match found', str(response.data['stockitem'])) + self.assertIn('Incorrect type', str(response.data['stockitem'])) # Fail with an invalid Part instance response = self.unassign( { - 'part': 'invalid', + 'part': 99999999999, }, expected_code=400, ) - self.assertIn('No match found', str(response.data['part'])) + self.assertIn('object does not exist', str(response.data['part'])) def test_assign_to_stock_item(self): """Test that we can assign a unique barcode to a StockItem object""" @@ -216,7 +216,7 @@ class TestInvenTreeBarcode(InvenTreeAPITestCase): expected_code=400, ) - self.assertIn('No matching part instance found in database', str(response.data)) + self.assertIn('object does not exist', str(response.data['part'])) # Test assigning to a valid part (should pass) response = self.assign( diff --git a/InvenTree/plugin/test_api.py b/InvenTree/plugin/test_api.py index a62b1c6d64..442a493d48 100644 --- a/InvenTree/plugin/test_api.py +++ b/InvenTree/plugin/test_api.py @@ -23,8 +23,8 @@ class PluginDetailAPITest(PluginMixin, InvenTreeAPITestCase): """Setup for all tests.""" self.MSG_NO_PKG = 'Either packagename of URL must be provided' - self.PKG_NAME = 'minimal' - self.PKG_URL = 'git+https://github.com/geoffrey-a-reed/minimal' + self.PKG_NAME = 'inventree-brother-plugin' + self.PKG_URL = 'git+https://github.com/inventree/inventree-brother-plugin' super().setUp() def test_plugin_install(self): @@ -71,7 +71,7 @@ class PluginDetailAPITest(PluginMixin, InvenTreeAPITestCase): { 'confirm': True, 'url': self.PKG_URL, - 'packagename': 'minimal', + 'packagename': self.PKG_NAME, }, expected_code=201, ).data diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 52632dbcd3..05d8cf4e89 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -629,10 +629,92 @@ class StockFilter(rest_filters.FilterSet): parent__in=ancestor.get_descendants(include_self=True) ) + category = rest_filters.ModelChoiceFilter( + label=_('Category'), + queryset=PartCategory.objects.all(), + method='filter_category' + ) + + def filter_category(self, queryset, name, category): + """Filter based on part category""" + + child_categories = category.get_descendants(include_self=True) + + return queryset.filter( + part__category__in=child_categories, + ) + + bom_item = rest_filters.ModelChoiceFilter( + label=_('BOM Item'), + queryset=BomItem.objects.all(), + method='filter_bom_item' + ) + + def filter_bom_item(self, queryset, name, bom_item): + """Filter based on BOM item""" + + return queryset.filter(bom_item.get_stock_filter()) + + part_tree = rest_filters.ModelChoiceFilter( + label=_('Part Tree'), + queryset=Part.objects.all(), + method='filter_part_tree' + ) + + def filter_part_tree(self, queryset, name, part_tree): + """Filter based on part tree""" + return queryset.filter( + part__tree_id=part_tree.tree_id + ) + + company = rest_filters.ModelChoiceFilter( + label=_('Company'), + queryset=Company.objects.all(), + method='filter_company' + ) + + def filter_company(self, queryset, name, company): + """Filter by company (either manufacturer or supplier)""" + return queryset.filter( + Q(supplier_part__supplier=company) | Q(supplier_part__manufacturer_part__manufacturer=company) + ).distinct() + # Update date filters updated_before = rest_filters.DateFilter(label='Updated before', field_name='updated', lookup_expr='lte') updated_after = rest_filters.DateFilter(label='Updated after', field_name='updated', lookup_expr='gte') + # Stock "expiry" filters + expiry_date_lte = rest_filters.DateFilter( + label=_("Expiry date before"), + field_name='expiry_date', + lookup_expr='lte', + ) + + expiry_date_gte = rest_filters.DateFilter( + label=_('Expiry date after'), + field_name='expiry_date', + lookup_expr='gte', + ) + + stale = rest_filters.BooleanFilter(label=_('Stale'), method='filter_stale') + + def filter_stale(self, queryset, name, value): + """Filter by stale stock items.""" + + stale_days = common.models.InvenTreeSetting.get_setting('STOCK_STALE_DAYS') + + if stale_days <= 0: + # No filtering, does not make sense + return queryset + + stale_date = datetime.now().date() + timedelta(days=stale_days) + stale_filter = StockItem.IN_STOCK_FILTER & ~Q(expiry_date=None) & Q(expiry_date__lt=stale_date) + + if str2bool(value): + return queryset.filter(stale_filter) + else: + return queryset.exclude(stale_filter) + class StockList(APIDownloadMixin, ListCreateDestroyAPIView): """API endpoint for list view of Stock objects. @@ -898,44 +980,6 @@ class StockList(APIDownloadMixin, ListCreateDestroyAPIView): queryset = super().filter_queryset(queryset) - if common.settings.stock_expiry_enabled(): - - # Filter by 'expiry date' - expired_date_lte = params.get('expiry_date_lte', None) - if expired_date_lte is not None: - try: - date_lte = datetime.fromisoformat(expired_date_lte) - queryset = queryset.filter(expiry_date__lte=date_lte) - except (ValueError, TypeError): - pass - - expiry_date_gte = params.get('expiry_date_gte', None) - if expiry_date_gte is not None: - try: - date_gte = datetime.fromisoformat(expiry_date_gte) - queryset = queryset.filter(expiry_date__gte=date_gte) - except (ValueError, TypeError): - pass - - # Filter by 'stale' status - stale = params.get('stale', None) - - if stale is not None: - stale = str2bool(stale) - - # How many days to account for "staleness"? - stale_days = common.models.InvenTreeSetting.get_setting('STOCK_STALE_DAYS') - - if stale_days > 0: - stale_date = datetime.now().date() + timedelta(days=stale_days) - - stale_filter = StockItem.IN_STOCK_FILTER & ~Q(expiry_date=None) & Q(expiry_date__lt=stale_date) - - if stale: - queryset = queryset.filter(stale_filter) - else: - queryset = queryset.exclude(stale_filter) - # Exclude stock item tree exclude_tree = params.get('exclude_tree', None) @@ -950,18 +994,6 @@ class StockList(APIDownloadMixin, ListCreateDestroyAPIView): except (ValueError, StockItem.DoesNotExist): pass - # Filter by "part tree" - only allow parts within a given variant tree - part_tree = params.get('part_tree', None) - - if part_tree is not None: - try: - part = Part.objects.get(pk=part_tree) - - if part.tree_id is not None: - queryset = queryset.filter(part__tree_id=part.tree_id) - except Exception: - pass - # Exclude StockItems which are already allocated to a particular SalesOrder exclude_so_allocation = params.get('exclude_so_allocation', None) @@ -1032,37 +1064,6 @@ class StockList(APIDownloadMixin, ListCreateDestroyAPIView): except (ValueError, StockLocation.DoesNotExist): pass - # Does the client wish to filter by part category? - cat_id = params.get('category', None) - - if cat_id: - try: - category = PartCategory.objects.get(pk=cat_id) - queryset = queryset.filter(part__category__in=category.getUniqueChildren()) - - except (ValueError, PartCategory.DoesNotExist): - raise ValidationError({"category": "Invalid category id specified"}) - - # Does the client wish to filter by BomItem - bom_item_id = params.get('bom_item', None) - - if bom_item_id is not None: - try: - bom_item = BomItem.objects.get(pk=bom_item_id) - - queryset = queryset.filter(bom_item.get_stock_filter()) - - except (ValueError, BomItem.DoesNotExist): - pass - - # Filter by company (either manufacturer or supplier) - company = params.get('company', None) - - if company is not None: - queryset = queryset.filter( - Q(supplier_part__supplier=company) | Q(supplier_part__manufacturer_part__manufacturer=company).distinct() - ) - return queryset filter_backends = SEARCH_ORDER_FILTER_ALIAS diff --git a/InvenTree/stock/test_api.py b/InvenTree/stock/test_api.py index 6f6165f68e..3c9dd6931d 100644 --- a/InvenTree/stock/test_api.py +++ b/InvenTree/stock/test_api.py @@ -486,6 +486,11 @@ class StockItemListTest(StockAPITestCase): response = self.get_stock(batch='B123') self.assertEqual(len(response), 1) + def test_filter_by_company(self): + """Test that we can filter stock items by company""" + for cmp in company.models.Company.objects.all(): + self.get_stock(company=cmp.pk) + def test_filter_by_serialized(self): """Filter StockItem by serialized status.""" response = self.get_stock(serialized=1) @@ -740,10 +745,10 @@ class StockItemListTest(StockAPITestCase): def test_query_count(self): """Test that the number of queries required to fetch stock items is reasonable.""" - def get_stock(data): + def get_stock(data, expected_status=200): """Helper function to fetch stock items.""" response = self.client.get(self.list_url, data=data) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, expected_status) return response.data # Create a bunch of StockItem objects diff --git a/InvenTree/templates/InvenTree/settings/settings_staff_js.html b/InvenTree/templates/InvenTree/settings/settings_staff_js.html index f5e89462c8..3ee6ab180d 100644 --- a/InvenTree/templates/InvenTree/settings/settings_staff_js.html +++ b/InvenTree/templates/InvenTree/settings/settings_staff_js.html @@ -145,6 +145,25 @@ onPanelLoad('project-codes', function() { sortable: true, title: '{% trans "Project Code" %}', }, + { + field: 'responsible', + title: '{% trans "Responsible" %}', + formatter: function(value, row) { + if (!row.responsible_detail) { + return '-'; + } + + var html = row.responsible_detail.name; + + if (row.responsible_detail.label == '{% trans "group" %}') { + html += ``; + } else { + html += ``; + } + + return html; + } + }, { field: 'description', sortable: false, @@ -171,6 +190,7 @@ onPanelLoad('project-codes', function() { fields: { code: {}, description: {}, + responsible: {}, }, refreshTable: '#project-code-table', }); diff --git a/InvenTree/templates/js/translated/forms.js b/InvenTree/templates/js/translated/forms.js index 652c744e19..e5b075942e 100644 --- a/InvenTree/templates/js/translated/forms.js +++ b/InvenTree/templates/js/translated/forms.js @@ -486,7 +486,15 @@ function extractNestedField(field_name, fields) { */ function constructFormBody(fields, options) { - var html = ''; + let html = ''; + + // Client must provide set of fields to be displayed, + // otherwise *all* fields will be displayed + const displayed_fields = options.fields || fields || {}; + + if(!options.fields) { + options.fields = displayed_fields; + } // add additional content as a header on top (provided as html by the caller) if (options.header_html) { @@ -516,13 +524,11 @@ function constructFormBody(fields, options) { } for (const [k,v] of Object.entries(fields)) { - processField(k, v, options.fields[k]); + if (options.fields && k in options.fields) { + processField(k, v, options.fields[k]); + } } - // Client must provide set of fields to be displayed, - // otherwise *all* fields will be displayed - var displayed_fields = options.fields || fields; - // Override default option values if a 'DELETE' form is specified if (options.method == 'DELETE') { if (!('confirm' in options)) { diff --git a/docker/requirements.txt b/docker/requirements.txt index 15830985a8..fca58263a6 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -1,19 +1,19 @@ # Base python requirements for docker containers # Basic package requirements -invoke>=1.4.0 # Invoke build tool +invoke>=2.2.0 # Invoke build tool pyyaml>=6.0.1 -setuptools==65.6.3 -wheel>=0.37.0 +setuptools>=69.0.0 +wheel>=0.41.0 # Database links -psycopg2>=2.9.1 -mysqlclient>=2.0.3,<=2.1.1 +psycopg2>=2.9.9 +mysqlclient>=2.2.0 pgcli>=3.1.0 -mariadb>=1.0.7,<1.1.0 +mariadb>=1.1.8 # gunicorn web server -gunicorn>=20.1.0 +gunicorn>=21.2.0 # LDAP required packages django-auth-ldap # Django integration for ldap auth diff --git a/docs/docs/part/pricing.md b/docs/docs/part/pricing.md index bcf21871ce..7ba1352de4 100644 --- a/docs/docs/part/pricing.md +++ b/docs/docs/part/pricing.md @@ -28,6 +28,17 @@ Pricing information can be determined from multiple sources: | Supplier Price | The price to theoretically purchase a part from a given supplier (with price-breaks) | [Supplier](../order/company.md#suppliers) | | Purchase Cost | Historical cost information for parts purchased | [Purchase Order](../order/purchase_order.md) | | BOM Price | Total price for an assembly (total price of all component items) | [Part](../part/part.md) | + +#### Override Pricing + +In addition to caching pricing data as documented in the above table, manual pricing overrides can be specified for a particular part. Both the *minimum price* and *maximum price* can be specified manually, independent of the calculated values. If an manual price is specified for a part, it overrides any calculated value. + +### Sale Pricing + +Additionally, the following information is stored for each part, in relation to sale pricing: + +| Pricing Source | Description | Linked to | +| --- | --- | --- | | Sale Price | How much a salable item is sold for (with price-breaks) | [Part](../part/part.md) | | Sale Cost | How much an item was sold for | [Sales Order](../order/sales_order.md) | diff --git a/requirements-dev.in b/requirements-dev.in index ad87a439e6..50f25f136c 100644 --- a/requirements-dev.in +++ b/requirements-dev.in @@ -12,3 +12,4 @@ pep8-naming # PEP naming convention extension pip-tools # Compile pip requirements pre-commit # Git pre-commit setuptools # Standard dependency +pdfminer.six # PDF validation diff --git a/requirements-dev.txt b/requirements-dev.txt index 24e6fde3f5..e123f11fc5 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -14,11 +14,16 @@ certifi==2023.7.22 # via # -c requirements.txt # requests +cffi==1.16.0 + # via + # -c requirements.txt + # cryptography cfgv==3.4.0 # via pre-commit charset-normalizer==3.3.2 # via # -c requirements.txt + # pdfminer-six # requests click==8.1.7 # via pip-tools @@ -28,6 +33,10 @@ coverage==5.5 # coveralls coveralls==2.1.2 # via -r requirements-dev.in +cryptography==41.0.5 + # via + # -c requirements.txt + # pdfminer-six distlib==0.3.7 # via virtualenv django==3.2.23 @@ -72,6 +81,8 @@ packaging==23.2 # via # -c requirements.txt # build +pdfminer-six==20221105 + # via -r requirements-dev.in pep8-naming==0.13.3 # via -r requirements-dev.in pip-tools==7.3.0 @@ -82,6 +93,10 @@ pre-commit==3.5.0 # via -r requirements-dev.in pycodestyle==2.11.1 # via flake8 +pycparser==2.21 + # via + # -c requirements.txt + # cffi pydocstyle==6.3.0 # via flake8-docstrings pyflakes==3.1.0 diff --git a/requirements.in b/requirements.in index f9a5d91dc7..9a7c7e339d 100644 --- a/requirements.in +++ b/requirements.in @@ -48,4 +48,4 @@ regex # Advanced regular expressions sentry-sdk # Error reporting (optional) setuptools # Standard dependency tablib[xls,xlsx,yaml] # Support for XLS and XLSX formats -weasyprint==54.3 # PDF generation +weasyprint # PDF generation diff --git a/requirements.txt b/requirements.txt index 8145622024..9657d00178 100644 --- a/requirements.txt +++ b/requirements.txt @@ -269,7 +269,7 @@ requests==2.31.0 # requests-oauthlib requests-oauthlib==1.3.1 # via django-allauth -rpds-py==0.10.6 +rpds-py==0.12.0 # via # jsonschema # referencing @@ -311,7 +311,7 @@ urllib3==2.0.7 # dulwich # requests # sentry-sdk -weasyprint==54.3 +weasyprint==60.1 # via # -r requirements.in # django-weasyprint diff --git a/src/frontend/package.json b/src/frontend/package.json index c0cce21416..176e4a7716 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -39,6 +39,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-grid-layout": "^1.4.2", + "react-hook-form": "^7.48.2", "react-router-dom": "^6.17.0", "react-select": "^5.7.7", "react-simplemde-editor": "^5.2.0", diff --git a/src/frontend/src/components/buttons/ButtonMenu.tsx b/src/frontend/src/components/buttons/ButtonMenu.tsx index c30b146633..47192ad20f 100644 --- a/src/frontend/src/components/buttons/ButtonMenu.tsx +++ b/src/frontend/src/components/buttons/ButtonMenu.tsx @@ -15,8 +15,6 @@ export function ButtonMenu({ label?: string; tooltip?: string; }) { - let idx = 0; - return ( @@ -26,8 +24,8 @@ export function ButtonMenu({ {label && {label}} - {actions.map((action) => ( - {action} + {actions.map((action, i) => ( + {action} ))} diff --git a/src/frontend/src/components/forms/ApiForm.tsx b/src/frontend/src/components/forms/ApiForm.tsx index db2ade1a30..0231f8c649 100644 --- a/src/frontend/src/components/forms/ApiForm.tsx +++ b/src/frontend/src/components/forms/ApiForm.tsx @@ -1,120 +1,231 @@ import { t } from '@lingui/macro'; -import { Alert, Divider, LoadingOverlay, Text } from '@mantine/core'; +import { + Alert, + DefaultMantineColor, + Divider, + LoadingOverlay, + Text +} from '@mantine/core'; import { Button, Group, Stack } from '@mantine/core'; -import { useForm } from '@mantine/form'; -import { modals } from '@mantine/modals'; +import { useId } from '@mantine/hooks'; import { notifications } from '@mantine/notifications'; import { useQuery } from '@tanstack/react-query'; -import { useEffect, useMemo } from 'react'; +import { useCallback, useEffect, useMemo } from 'react'; import { useState } from 'react'; +import { + FieldValues, + SubmitErrorHandler, + SubmitHandler, + useForm +} from 'react-hook-form'; import { api, queryClient } from '../../App'; import { ApiPaths } from '../../enums/ApiEndpoints'; -import { constructFormUrl } from '../../functions/forms'; +import { + NestedDict, + constructField, + constructFormUrl, + extractAvailableFields, + mapFields +} from '../../functions/forms'; import { invalidResponse } from '../../functions/notifications'; -import { ApiFormField, ApiFormFieldSet } from './fields/ApiFormField'; +import { PathParams } from '../../states/ApiState'; +import { + ApiFormField, + ApiFormFieldSet, + ApiFormFieldType +} from './fields/ApiFormField'; + +export interface ApiFormAction { + text: string; + variant?: 'outline'; + color?: DefaultMantineColor; + onClick: () => void; +} /** * Properties for the ApiForm component * @param url : The API endpoint to fetch the form data from * @param pk : Optional primary-key value when editing an existing object - * @param title : The title to display in the form header + * @param pathParams : Optional path params for the url + * @param method : Optional HTTP method to use when submitting the form (default: GET) * @param fields : The fields to render in the form * @param submitText : Optional custom text to display on the submit button (default: Submit)4 * @param submitColor : Optional custom color for the submit button (default: green) - * @param cancelText : Optional custom text to display on the cancel button (default: Cancel) - * @param cancelColor : Optional custom color for the cancel button (default: blue) * @param fetchInitialData : Optional flag to fetch initial data from the server (default: true) - * @param method : Optional HTTP method to use when submitting the form (default: GET) * @param preFormContent : Optional content to render before the form fields * @param postFormContent : Optional content to render after the form fields * @param successMessage : Optional message to display on successful form submission - * @param onClose : A callback function to call when the form is closed. * @param onFormSuccess : A callback function to call when the form is submitted successfully. * @param onFormError : A callback function to call when the form is submitted with errors. */ export interface ApiFormProps { url: ApiPaths; pk?: number | string | undefined; - title: string; + pathParams?: PathParams; + method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; fields?: ApiFormFieldSet; - cancelText?: string; submitText?: string; submitColor?: string; - cancelColor?: string; fetchInitialData?: boolean; ignorePermissionCheck?: boolean; - method?: string; - preFormContent?: JSX.Element | (() => JSX.Element); - postFormContent?: JSX.Element | (() => JSX.Element); + preFormContent?: JSX.Element; + postFormContent?: JSX.Element; successMessage?: string; - onClose?: () => void; onFormSuccess?: (data: any) => void; onFormError?: () => void; + actions?: ApiFormAction[]; +} + +export function OptionsApiForm({ + props: _props, + id: pId +}: { + props: ApiFormProps; + id?: string; +}) { + const props = useMemo( + () => ({ + ..._props, + method: _props.method || 'GET' + }), + [_props] + ); + + const id = useId(pId); + + const url = useMemo( + () => constructFormUrl(props.url, props.pk, props.pathParams), + [props.url, props.pk, props.pathParams] + ); + + const { data } = useQuery({ + enabled: true, + queryKey: [ + 'form-options-data', + id, + props.method, + props.url, + props.pk, + props.pathParams + ], + queryFn: () => + api.options(url).then((res) => { + let fields: Record | null = {}; + + if (!props.ignorePermissionCheck) { + fields = extractAvailableFields(res, props.method); + } + + return fields; + }), + throwOnError: (error: any) => { + if (error.response) { + invalidResponse(error.response.status); + } else { + notifications.show({ + title: t`Form Error`, + message: error.message, + color: 'red' + }); + } + + return false; + } + }); + + const formProps: ApiFormProps = useMemo(() => { + const _props = { ...props }; + + if (!_props.fields) return _props; + + for (const [k, v] of Object.entries(_props.fields)) { + _props.fields[k] = constructField({ + field: v, + definition: data?.[k] + }); + } + + return _props; + }, [data, props]); + + if (!data) { + return ; + } + + return ; } /** * An ApiForm component is a modal form which is rendered dynamically, * based on an API endpoint. */ -export function ApiForm({ - modalId, - props, - fieldDefinitions -}: { - modalId: string; - props: ApiFormProps; - fieldDefinitions: ApiFormFieldSet; -}) { +export function ApiForm({ id, props }: { id: string; props: ApiFormProps }) { + const defaultValues: FieldValues = useMemo( + () => + mapFields(props.fields ?? {}, (_path, field) => { + return field.default ?? undefined; + }), + [props.fields] + ); + // Form errors which are not associated with a specific field const [nonFieldErrors, setNonFieldErrors] = useState([]); // Form state - const form = useForm({}); + const form = useForm({ + criteriaMode: 'all', + defaultValues + }); + const { isValid, isDirty, isLoading: isFormLoading } = form.formState; // Cache URL - const url = useMemo(() => constructFormUrl(props), [props]); + const url = useMemo( + () => constructFormUrl(props.url, props.pk, props.pathParams), + [props.url, props.pk, props.pathParams] + ); - // Render pre-form content - // TODO: Future work will allow this content to be updated dynamically based on the form data - const preFormElement: JSX.Element | null = useMemo(() => { - if (props.preFormContent === undefined) { - return null; - } else if (props.preFormContent instanceof Function) { - return props.preFormContent(); - } else { - return props.preFormContent; - } - }, [props]); - - // Render post-form content - // TODO: Future work will allow this content to be updated dynamically based on the form data - const postFormElement: JSX.Element | null = useMemo(() => { - if (props.postFormContent === undefined) { - return null; - } else if (props.postFormContent instanceof Function) { - return props.postFormContent(); - } else { - return props.postFormContent; - } - }, [props]); - - // Query manager for retrieiving initial data from the server + // Query manager for retrieving initial data from the server const initialDataQuery = useQuery({ enabled: false, - queryKey: ['form-initial-data', modalId, props.method, props.url, props.pk], + queryKey: [ + 'form-initial-data', + id, + props.method, + props.url, + props.pk, + props.pathParams + ], queryFn: async () => { return api .get(url) .then((response) => { - // Update form values, but only for the fields specified for the form - Object.keys(props.fields ?? {}).forEach((fieldName) => { - if (fieldName in response.data) { - form.setValues({ - [fieldName]: response.data[fieldName] - }); + const processFields = (fields: ApiFormFieldSet, data: NestedDict) => { + const res: NestedDict = {}; + + for (const [k, field] of Object.entries(fields)) { + const dataValue = data[k]; + + if ( + field.field_type === 'nested object' && + field.children && + typeof dataValue === 'object' + ) { + res[k] = processFields(field.children, dataValue); + } else { + res[k] = dataValue; + } } - }); + + return res; + }; + const initialData: any = processFields( + props.fields ?? {}, + response.data + ); + + // Update form values, but only for the fields specified for this form + form.reset(initialData); return response; }) @@ -126,144 +237,129 @@ export function ApiForm({ // Fetch initial data on form load useEffect(() => { - // Provide initial form data - Object.entries(props.fields ?? {}).forEach(([fieldName, field]) => { - // fieldDefinition is supplied by the API, and can serve as a backup - let fieldDefinition = fieldDefinitions[fieldName] ?? {}; - - let v = - field.value ?? - field.default ?? - fieldDefinition.value ?? - fieldDefinition.default ?? - undefined; - - if (v !== undefined) { - form.setValues({ - [fieldName]: v - }); - } - }); - // Fetch initial data if the fetchInitialData property is set if (props.fetchInitialData) { queryClient.removeQueries({ queryKey: [ 'form-initial-data', - modalId, + id, props.method, props.url, - props.pk + props.pk, + props.pathParams ] }); initialDataQuery.refetch(); } }, []); - // Query manager for submitting data - const submitQuery = useQuery({ - enabled: false, - queryKey: ['form-submit', modalId, props.method, props.url, props.pk], - queryFn: async () => { - let method = props.method?.toLowerCase() ?? 'get'; + const submitForm: SubmitHandler = async (data) => { + setNonFieldErrors([]); - return api({ - method: method, - url: url, - data: form.values, - headers: { - 'Content-Type': 'multipart/form-data' + let method = props.method?.toLowerCase() ?? 'get'; + + let hasFiles = false; + mapFields(props.fields ?? {}, (_path, field) => { + if (field.field_type === 'file upload') { + hasFiles = true; + } + }); + + return api({ + method: method, + url: url, + data: data, + headers: { + 'Content-Type': hasFiles ? 'multipart/form-data' : 'application/json' + } + }) + .then((response) => { + switch (response.status) { + case 200: + case 201: + case 204: + // Form was submitted successfully + + // Optionally call the onFormSuccess callback + if (props.onFormSuccess) { + props.onFormSuccess(response.data); + } + + // Optionally show a success message + if (props.successMessage) { + notifications.show({ + title: t`Success`, + message: props.successMessage, + color: 'green' + }); + } + + break; + default: + // Unexpected state on form success + invalidResponse(response.status); + props.onFormError?.(); + break; } + + return response; }) - .then((response) => { - switch (response.status) { - case 200: - case 201: - case 204: - // Form was submitted successfully + .catch((error) => { + if (error.response) { + switch (error.response.status) { + case 400: + // Data validation errors + const nonFieldErrors: string[] = []; + const processErrors = (errors: any, _path?: string) => { + for (const [k, v] of Object.entries(errors)) { + const path = _path ? `${_path}.${k}` : k; - // Optionally call the onFormSuccess callback - if (props.onFormSuccess) { - props.onFormSuccess(response.data); - } + if (k === 'non_field_errors') { + nonFieldErrors.push((v as string[]).join(', ')); + continue; + } - // Optionally show a success message - if (props.successMessage) { - notifications.show({ - title: t`Success`, - message: props.successMessage, - color: 'green' - }); - } + if (typeof v === 'object' && Array.isArray(v)) { + form.setError(path, { message: v.join(', ') }); + } else { + processErrors(v, path); + } + } + }; - closeForm(); + processErrors(error.response.data); + setNonFieldErrors(nonFieldErrors); break; default: - // Unexpected state on form success - invalidResponse(response.status); - closeForm(); + // Unexpected state on form error + invalidResponse(error.response.status); + props.onFormError?.(); break; } + } else { + invalidResponse(0); + props.onFormError?.(); + } - return response; - }) - .catch((error) => { - if (error.response) { - switch (error.response.status) { - case 400: - // Data validation error - form.setErrors(error.response.data); - setNonFieldErrors(error.response.data.non_field_errors ?? []); - setIsLoading(false); - break; - default: - // Unexpected state on form error - invalidResponse(error.response.status); - closeForm(); - break; - } - } else { - invalidResponse(0); - closeForm(); - } + return error; + }); + }; - return error; - }); - }, - refetchOnMount: false, - refetchOnWindowFocus: false - }); + const isLoading = useMemo( + () => isFormLoading || initialDataQuery.isFetching, + [isFormLoading, initialDataQuery.isFetching] + ); - // Data loading state - const [isLoading, setIsLoading] = useState(true); - - useEffect(() => { - setIsLoading(submitQuery.isFetching || initialDataQuery.isFetching); - }, [initialDataQuery.status, submitQuery.status]); - - /** - * Callback to perform form submission - */ - function submitForm() { - setIsLoading(true); - submitQuery.refetch(); - } - - /** - * Callback to close the form - * Note that the calling function might implement an onClose() callback, - * which will be automatically called - */ - function closeForm() { - modals.close(modalId); - } + const onFormError = useCallback>(() => { + props.onFormError?.(); + }, [props.onFormError]); return ( - {(Object.keys(form.errors).length > 0 || nonFieldErrors.length > 0) && ( + {(!isValid || nonFieldErrors.length > 0) && ( {nonFieldErrors.length > 0 && ( @@ -274,41 +370,38 @@ export function ApiForm({ )} )} - {preFormElement} + {props.preFormContent} - {Object.entries(props.fields ?? {}).map( - ([fieldName, field]) => - !field.hidden && ( - - ) - )} + {Object.entries(props.fields ?? {}).map(([fieldName, field]) => ( + + ))} - {postFormElement} + {props.postFormContent} + {props.actions?.map((action, i) => ( + + ))} - diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx index dd34567e1e..b7cd508c2f 100644 --- a/src/frontend/src/components/forms/fields/ApiFormField.tsx +++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx @@ -11,27 +11,18 @@ import { DateInput } from '@mantine/dates'; import { UseFormReturnType } from '@mantine/form'; import { useId } from '@mantine/hooks'; import { IconX } from '@tabler/icons-react'; -import { ReactNode } from 'react'; +import { ReactNode, useCallback, useEffect } from 'react'; import { useMemo } from 'react'; +import { Control, FieldValues, useController } from 'react-hook-form'; import { ModelType } from '../../../enums/ModelType'; -import { ApiFormProps } from '../ApiForm'; import { ChoiceField } from './ChoiceField'; +import { NestedObjectField } from './NestedObjectField'; import { RelatedModelField } from './RelatedModelField'; export type ApiFormData = UseFormReturnType>; -/** - * Callback function type when a form field value changes - */ -export type ApiFormChangeCallback = { - name: string; - value: any; - field: ApiFormFieldType; - form: ApiFormData; -}; - -/* Definition of the ApiForm field component. +/** Definition of the ApiForm field component. * - The 'name' attribute *must* be provided * - All other attributes are optional, and may be provided by the API * - However, they can be overridden by the user @@ -60,10 +51,25 @@ export type ApiFormFieldType = { value?: any; default?: any; icon?: ReactNode; - field_type?: string; + field_type?: + | 'related field' + | 'email' + | 'url' + | 'string' + | 'boolean' + | 'date' + | 'integer' + | 'decimal' + | 'float' + | 'number' + | 'choice' + | 'file upload' + | 'nested object'; api_url?: string; model?: ModelType; + modelRenderer?: (instance: any) => ReactNode; filters?: any; + children?: { [key: string]: ApiFormFieldType }; required?: boolean; choices?: any[]; hidden?: boolean; @@ -71,127 +77,66 @@ export type ApiFormFieldType = { read_only?: boolean; placeholder?: string; description?: string; - preFieldContent?: JSX.Element | (() => JSX.Element); - postFieldContent?: JSX.Element | (() => JSX.Element); - onValueChange?: (change: ApiFormChangeCallback) => void; - adjustFilters?: (filters: any, form: ApiFormData) => any; + preFieldContent?: JSX.Element; + postFieldContent?: JSX.Element; + onValueChange?: (value: any) => void; + adjustFilters?: (filters: any) => any; }; -/* - * Build a complete field definition based on the provided data - */ -export function constructField({ - form, - fieldName, - field, - definitions -}: { - form: UseFormReturnType>; - fieldName: string; - field: ApiFormFieldType; - definitions: Record; -}) { - let def = definitions[fieldName] || field; - - def = { - ...def, - ...field - }; - - // Retrieve the latest value from the form - let value = form.values[fieldName]; - - if (value != undefined) { - def.value = value; - } - - // Change value to a date object if required - switch (def.field_type) { - case 'date': - if (def.value) { - def.value = new Date(def.value); - } - break; - default: - break; - } - - // Clear out the 'read_only' attribute - def.disabled = def.disabled ?? def.read_only ?? false; - delete def['read_only']; - - return def; -} - /** * Render an individual form field */ export function ApiFormField({ - formProps, - form, fieldName, - field, - error, - definitions + definition, + control }: { - formProps: ApiFormProps; - form: UseFormReturnType>; fieldName: string; - field: ApiFormFieldType; - error: ReactNode; - definitions: Record; + definition: ApiFormFieldType; + control: Control; }) { - const fieldId = useId(fieldName); + const fieldId = useId(); + const controller = useController({ + name: fieldName, + control + }); + const { + field, + fieldState: { error } + } = controller; + const { value, ref } = field; - // Extract field definition from provided data - // Where user has provided specific data, override the API definition - const definition: ApiFormFieldType = useMemo( - () => - constructField({ - form: form, - fieldName: fieldName, - field: field, - definitions: definitions - }), - [fieldName, field, definitions] - ); + useEffect(() => { + if (definition.field_type === 'nested object') return; - const preFieldElement: JSX.Element | null = useMemo(() => { - if (field.preFieldContent === undefined) { - return null; - } else if (field.preFieldContent instanceof Function) { - return field.preFieldContent(); - } else { - return field.preFieldContent; + // hook up the value state to the input field + if (definition.value !== undefined) { + field.onChange(definition.value); } - }, [field]); + }, [definition.value]); - const postFieldElement: JSX.Element | null = useMemo(() => { - if (field.postFieldContent === undefined) { - return null; - } else if (field.postFieldContent instanceof Function) { - return field.postFieldContent(); - } else { - return field.postFieldContent; - } - }, [field]); + // pull out onValueChange as this can cause strange errors when passing the + // definition to the input components via spread syntax + const reducedDefinition = useMemo(() => { + return { + ...definition, + onValueChange: undefined, + adjustFilters: undefined, + read_only: undefined, + children: undefined + }; + }, [definition]); // Callback helper when form value changes - function onChange(value: any) { - form.setValues({ [fieldName]: value }); + const onChange = useCallback( + (value: any) => { + field.onChange(value); - // Run custom callback for this field - if (definition.onValueChange) { - definition.onValueChange({ - name: fieldName, - value: value, - field: definition, - form: form - }); - } - } - - const value: any = useMemo(() => form.values[fieldName], [form.values]); + // Run custom callback for this field + definition.onValueChange?.(value); + }, + [fieldName, definition] + ); // Coerce the value to a numerical value const numericalValue: number | undefined = useMemo(() => { @@ -223,12 +168,9 @@ export function ApiFormField({ case 'related field': return ( ); case 'email': @@ -236,11 +178,12 @@ export function ApiFormField({ case 'string': return ( onChange(event.currentTarget.value)} rightSection={ @@ -253,23 +196,25 @@ export function ApiFormField({ case 'boolean': return ( onChange(event.currentTarget.checked)} /> ); case 'date': return ( onChange(value)} @@ -282,11 +227,12 @@ export function ApiFormField({ case 'number': return ( { let v: any = parseFloat(value); @@ -303,24 +249,31 @@ export function ApiFormField({ case 'choice': return ( ); case 'file upload': return ( onChange(payload)} /> ); + case 'nested object': + return ( + + ); default: return ( @@ -331,11 +284,15 @@ export function ApiFormField({ } } + if (definition.hidden) { + return null; + } + return ( - {preFieldElement} + {definition.preFieldContent} {buildField()} - {postFieldElement} + {definition.postFieldContent} ); } diff --git a/src/frontend/src/components/forms/fields/ChoiceField.tsx b/src/frontend/src/components/forms/fields/ChoiceField.tsx index 51ddab179b..6c5762bd32 100644 --- a/src/frontend/src/components/forms/fields/ChoiceField.tsx +++ b/src/frontend/src/components/forms/fields/ChoiceField.tsx @@ -1,47 +1,30 @@ import { Select } from '@mantine/core'; -import { UseFormReturnType } from '@mantine/form'; import { useId } from '@mantine/hooks'; -import { ReactNode } from 'react'; +import { useCallback } from 'react'; import { useMemo } from 'react'; +import { FieldValues, UseControllerReturn } from 'react-hook-form'; -import { constructField } from './ApiFormField'; -import { ApiFormFieldSet, ApiFormFieldType } from './ApiFormField'; +import { ApiFormFieldType } from './ApiFormField'; /** * Render a 'select' field for selecting from a list of choices */ export function ChoiceField({ - error, - form, - fieldName, - field, - definitions + controller, + definition }: { - error: ReactNode; - form: UseFormReturnType>; - field: ApiFormFieldType; + controller: UseControllerReturn; + definition: ApiFormFieldType; fieldName: string; - definitions: ApiFormFieldSet; }) { - // Extract field definition from provided data - // Where user has provided specific data, override the API definition - const definition: ApiFormFieldType = useMemo(() => { - let def = constructField({ - form: form, - field: field, - fieldName: fieldName, - definitions: definitions - }); + const fieldId = useId(); - return def; - }, [fieldName, field, definitions]); - - const fieldId = useId(fieldName); - - const value: any = useMemo(() => form.values[fieldName], [form.values]); + const { + field, + fieldState: { error } + } = controller; // Build a set of choices for the field - // TODO: In future, allow this to be created dynamically? const choices: any[] = useMemo(() => { let choices = definition.choices ?? []; @@ -53,30 +36,28 @@ export function ChoiceField({ label: choice.display_name }; }); - }, [definition]); + }, [definition.choices]); - // Callback when an option is selected - function onChange(value: any) { - form.setFieldValue(fieldName, value); + // Update form values when the selected value changes + const onChange = useCallback( + (value: any) => { + field.onChange(value); - if (definition.onValueChange) { - definition.onValueChange({ - name: fieldName, - value: value, - field: definition, - form: form - }); - } - } + // Run custom callback for this field (if provided) + definition.onValueChange?.(value); + }, + [field.onChange, definition] + ); return ( item.value == pk)} + value={currentValue} options={data} filterOption={null} onInputChange={(value: any) => { diff --git a/src/frontend/src/components/items/ActionDropdown.tsx b/src/frontend/src/components/items/ActionDropdown.tsx index 1590b9e4b3..32854f5e53 100644 --- a/src/frontend/src/components/items/ActionDropdown.tsx +++ b/src/frontend/src/components/items/ActionDropdown.tsx @@ -50,10 +50,9 @@ export function ActionDropdown({ {actions.map((action) => action.disabled ? null : ( - + { if (action.onClick != undefined) { action.onClick(); diff --git a/src/frontend/src/components/nav/BreadcrumbList.tsx b/src/frontend/src/components/nav/BreadcrumbList.tsx index 831f76c15e..b76c20be21 100644 --- a/src/frontend/src/components/nav/BreadcrumbList.tsx +++ b/src/frontend/src/components/nav/BreadcrumbList.tsx @@ -38,7 +38,7 @@ export function BreadcrumbList({ {breadcrumbs.map((breadcrumb, index) => { return ( breadcrumb.url && navigate(breadcrumb.url)} > {breadcrumb.name} diff --git a/src/frontend/src/components/nav/NotificationDrawer.tsx b/src/frontend/src/components/nav/NotificationDrawer.tsx index 895cc11eef..90030070f4 100644 --- a/src/frontend/src/components/nav/NotificationDrawer.tsx +++ b/src/frontend/src/components/nav/NotificationDrawer.tsx @@ -88,7 +88,7 @@ export function NotificationDrawer({ )} {notificationQuery.data?.results?.map((notification: any) => ( - + {notification.target?.name ?? 'target'} {notification.age_human ?? 'name'} diff --git a/src/frontend/src/components/nav/PageDetail.tsx b/src/frontend/src/components/nav/PageDetail.tsx index 5f997482f2..efaf1f3b33 100644 --- a/src/frontend/src/components/nav/PageDetail.tsx +++ b/src/frontend/src/components/nav/PageDetail.tsx @@ -1,5 +1,5 @@ import { Group, Paper, Space, Stack, Text } from '@mantine/core'; -import { ReactNode } from 'react'; +import { Fragment, ReactNode } from 'react'; import { ApiImage } from '../images/ApiImage'; import { StylishText } from '../items/StylishText'; @@ -58,8 +58,10 @@ export function PageDetail({ {detail} {actions && ( - - {actions} + + {actions.map((action, idx) => ( + {action} + ))} )} diff --git a/src/frontend/src/components/nav/PanelGroup.tsx b/src/frontend/src/components/nav/PanelGroup.tsx index 9a155b9a77..3f2929b232 100644 --- a/src/frontend/src/components/nav/PanelGroup.tsx +++ b/src/frontend/src/components/nav/PanelGroup.tsx @@ -90,15 +90,14 @@ export function PanelGroup({ > {panels.map( - (panel, idx) => + (panel) => !panel.hidden && ( {panels.map( - (panel, idx) => + (panel) => !panel.hidden && ( {query.results.results.map((result: any) => ( - onResultClick(query.model, result.pk)}> - + onResultClick(query.model, result.pk)} + key={result.pk} + > + ))} @@ -395,8 +394,9 @@ export function SearchDrawer({ )} {!searchQuery.isFetching && !searchQuery.isError && ( - {queryResults.map((query) => ( + {queryResults.map((query, idx) => ( removeResults(query)} onResultClick={(query, pk) => onResultClick(query, pk)} diff --git a/src/frontend/src/components/settings/SettingItem.tsx b/src/frontend/src/components/settings/SettingItem.tsx index b92df30879..5b91b9e255 100644 --- a/src/frontend/src/components/settings/SettingItem.tsx +++ b/src/frontend/src/components/settings/SettingItem.tsx @@ -8,7 +8,7 @@ import { api } from '../../App'; import { openModalApiForm } from '../../functions/forms'; import { apiUrl } from '../../states/ApiState'; import { SettingsStateProps } from '../../states/SettingsState'; -import { Setting } from '../../states/states'; +import { Setting, SettingType } from '../../states/states'; /** * Render a single setting value @@ -23,7 +23,10 @@ function SettingValue({ // Callback function when a boolean value is changed function onToggle(value: boolean) { api - .patch(apiUrl(settingsState.endpoint, setting.key), { value: value }) + .patch( + apiUrl(settingsState.endpoint, setting.key, settingsState.pathParams), + { value: value } + ) .then(() => { showNotification({ title: t`Setting updated`, @@ -44,15 +47,16 @@ function SettingValue({ // Callback function to open the edit dialog (for non-boolean settings) function onEditButton() { - let field_type: string = setting?.type ?? 'string'; + let field_type = setting?.type ?? 'string'; if (setting?.choices && setting?.choices?.length > 0) { - field_type = 'choice'; + field_type = SettingType.Choice; } openModalApiForm({ url: settingsState.endpoint, pk: setting.key, + pathParams: settingsState.pathParams, method: 'PATCH', title: t`Edit Setting`, ignorePermissionCheck: true, diff --git a/src/frontend/src/components/settings/SettingList.tsx b/src/frontend/src/components/settings/SettingList.tsx index 157a3ab698..628d4c7728 100644 --- a/src/frontend/src/components/settings/SettingList.tsx +++ b/src/frontend/src/components/settings/SettingList.tsx @@ -1,5 +1,5 @@ -import { Stack, Text } from '@mantine/core'; -import { useEffect } from 'react'; +import { Stack, Text, useMantineTheme } from '@mantine/core'; +import { useEffect, useMemo } from 'react'; import { SettingsStateProps, @@ -16,21 +16,36 @@ export function SettingList({ keys }: { settingsState: SettingsStateProps; - keys: string[]; + keys?: string[]; }) { useEffect(() => { settingsState.fetchSettings(); }, []); + const allKeys = useMemo( + () => settingsState?.settings?.map((s) => s.key), + [settingsState?.settings] + ); + + const theme = useMantineTheme(); + return ( <> - {keys.map((key) => { + {(keys || allKeys).map((key, i) => { const setting = settingsState?.settings?.find( (s: any) => s.key === key ); + + const style: Record = { paddingLeft: '8px' }; + if (i % 2 === 0) + style['backgroundColor'] = + theme.colorScheme === 'light' + ? theme.colors.gray[1] + : theme.colors.gray[9]; + return ( -
+
{setting ? ( ) : ( diff --git a/src/frontend/src/components/tables/Column.tsx b/src/frontend/src/components/tables/Column.tsx index 460386c2dc..4917689b99 100644 --- a/src/frontend/src/components/tables/Column.tsx +++ b/src/frontend/src/components/tables/Column.tsx @@ -1,14 +1,14 @@ /** * Interface for the table column definition */ -export type TableColumn = { +export type TableColumn = { accessor: string; // The key in the record to access ordering?: string; // The key in the record to sort by (defaults to accessor) title: string; // The title of the column sortable?: boolean; // Whether the column is sortable switchable?: boolean; // Whether the column is switchable hidden?: boolean; // Whether the column is hidden - render?: (record: any) => any; // A custom render function + render?: (record: T) => any; // A custom render function filter?: any; // A custom filter function filtering?: boolean; // Whether the column is filterable width?: number; // The width of the column diff --git a/src/frontend/src/components/tables/InvenTreeTable.tsx b/src/frontend/src/components/tables/InvenTreeTable.tsx index 51cd0ae6eb..1ec524293f 100644 --- a/src/frontend/src/components/tables/InvenTreeTable.tsx +++ b/src/frontend/src/components/tables/InvenTreeTable.tsx @@ -6,7 +6,7 @@ import { IconFilter, IconRefresh } from '@tabler/icons-react'; import { IconBarcode, IconPrinter } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; import { DataTable, DataTableSortStatus } from 'mantine-datatable'; -import { useEffect, useMemo, useState } from 'react'; +import { Fragment, useEffect, useMemo, useState } from 'react'; import { api } from '../../App'; import { ButtonMenu } from '../buttons/ButtonMenu'; @@ -44,7 +44,7 @@ const defaultPageSize: number = 25; * @param rowActions : (record: any) => RowAction[] - Callback function to generate row actions * @param onRowClick : (record: any, index: number, event: any) => void - Callback function when a row is clicked */ -export type InvenTreeTableProps = { +export type InvenTreeTableProps = { params?: any; defaultSortColumn?: string; noRecordsText?: string; @@ -57,12 +57,12 @@ export type InvenTreeTableProps = { pageSize?: number; barcodeActions?: any[]; customFilters?: TableFilter[]; - customActionGroups?: any[]; + customActionGroups?: React.ReactNode[]; printingActions?: any[]; idAccessor?: string; - dataFormatter?: (data: any) => any; - rowActions?: (record: any) => RowAction[]; - onRowClick?: (record: any, index: number, event: any) => void; + dataFormatter?: (data: T) => any; + rowActions?: (record: T) => RowAction[]; + onRowClick?: (record: T, index: number, event: any) => void; }; /** @@ -90,7 +90,7 @@ const defaultInvenTreeTableProps: InvenTreeTableProps = { /** * Table Component which extends DataTable with custom InvenTree functionality */ -export function InvenTreeTable({ +export function InvenTreeTable({ url, tableKey, columns, @@ -98,8 +98,8 @@ export function InvenTreeTable({ }: { url: string; tableKey: string; - columns: TableColumn[]; - props: InvenTreeTableProps; + columns: TableColumn[]; + props: InvenTreeTableProps; }) { // Use the first part of the table key as the table name const tableName: string = useMemo(() => { @@ -107,7 +107,7 @@ export function InvenTreeTable({ }, []); // Build table properties based on provided props (and default props) - const tableProps: InvenTreeTableProps = useMemo(() => { + const tableProps: InvenTreeTableProps = useMemo(() => { return { ...defaultInvenTreeTableProps, ...props @@ -432,9 +432,9 @@ export function InvenTreeTable({ - {tableProps.customActionGroups?.map( - (group: any, idx: number) => group - )} + {tableProps.customActionGroups?.map((group, idx) => ( + {group} + ))} {(tableProps.barcodeActions?.length ?? 0 > 0) && ( - {visibleActions.map((action, _idx) => ( - + {visibleActions.map((action) => ( + ))} diff --git a/src/frontend/src/components/tables/purchasing/SupplierPartTable.tsx b/src/frontend/src/components/tables/purchasing/SupplierPartTable.tsx index 952f28e4d2..7b9a1b3dd6 100644 --- a/src/frontend/src/components/tables/purchasing/SupplierPartTable.tsx +++ b/src/frontend/src/components/tables/purchasing/SupplierPartTable.tsx @@ -4,13 +4,10 @@ import { ReactNode, useCallback, useMemo } from 'react'; import { ApiPaths } from '../../../enums/ApiEndpoints'; import { UserRoles } from '../../../enums/Roles'; -import { supplierPartFields } from '../../../forms/CompanyForms'; -import { - openCreateApiForm, - openDeleteApiForm, - openEditApiForm -} from '../../../functions/forms'; +import { useSupplierPartFields } from '../../../forms/CompanyForms'; +import { openDeleteApiForm, openEditApiForm } from '../../../functions/forms'; import { useTableRefresh } from '../../../hooks/TableRefresh'; +import { useCreateApiFormModal } from '../../../hooks/UseForm'; import { apiUrl } from '../../../states/ApiState'; import { useUserState } from '../../../states/UserState'; import { AddItemButton } from '../../buttons/AddItemButton'; @@ -155,30 +152,36 @@ export function SupplierPartTable({ params }: { params: any }): ReactNode { ]; }, [params]); - const addSupplierPart = useCallback(() => { - let fields = supplierPartFields(); - - fields.part.value = params?.part; - fields.supplier.value = params?.supplier; - - openCreateApiForm({ + const addSupplierPartFields = useSupplierPartFields({ + partPk: params?.part, + supplierPk: params?.supplier, + hidePart: true + }); + const { modal: addSupplierPartModal, open: openAddSupplierPartForm } = + useCreateApiFormModal({ url: ApiPaths.supplier_part_list, title: t`Add Supplier Part`, - fields: fields, + fields: addSupplierPartFields, onFormSuccess: refreshTable, successMessage: t`Supplier part created` }); - }, [params]); // Table actions const tableActions = useMemo(() => { // TODO: Hide actions based on user permissions return [ - + ]; }, [user]); + const editSupplierPartFields = useSupplierPartFields({ + hidePart: true + }); + // Row action callback const rowActions = useCallback( (record: any) => { @@ -191,7 +194,7 @@ export function SupplierPartTable({ params }: { params: any }): ReactNode { url: ApiPaths.supplier_part_list, pk: record.pk, title: t`Edit Supplier Part`, - fields: supplierPartFields(), + fields: editSupplierPartFields, onFormSuccess: refreshTable, successMessage: t`Supplier part updated` }); @@ -215,24 +218,27 @@ export function SupplierPartTable({ params }: { params: any }): ReactNode { }) ]; }, - [user] + [user, editSupplierPartFields] ); return ( - + <> + {addSupplierPartModal} + + ); } diff --git a/src/frontend/src/components/tables/settings/ProjectCodeTable.tsx b/src/frontend/src/components/tables/settings/ProjectCodeTable.tsx index 52663727fa..6493c142e3 100644 --- a/src/frontend/src/components/tables/settings/ProjectCodeTable.tsx +++ b/src/frontend/src/components/tables/settings/ProjectCodeTable.tsx @@ -14,7 +14,7 @@ import { apiUrl } from '../../../states/ApiState'; import { useUserState } from '../../../states/UserState'; import { AddItemButton } from '../../buttons/AddItemButton'; import { TableColumn } from '../Column'; -import { DescriptionColumn } from '../ColumnRenderers'; +import { DescriptionColumn, ResponsibleColumn } from '../ColumnRenderers'; import { InvenTreeTable } from '../InvenTreeTable'; import { RowAction, RowDeleteAction, RowEditAction } from '../RowActions'; @@ -33,7 +33,8 @@ export function ProjectCodeTable() { sortable: true, title: t`Project Code` }, - DescriptionColumn() + DescriptionColumn(), + ResponsibleColumn() ]; }, []); @@ -49,7 +50,8 @@ export function ProjectCodeTable() { title: t`Edit project code`, fields: { code: {}, - description: {} + description: {}, + responsible: {} }, onFormSuccess: refreshTable, successMessage: t`Project code updated` @@ -82,7 +84,8 @@ export function ProjectCodeTable() { title: t`Add project code`, fields: { code: {}, - description: {} + description: {}, + responsible: {} }, onFormSuccess: refreshTable, successMessage: t`Added project code` diff --git a/src/frontend/src/components/tables/settings/UserDrawer.tsx b/src/frontend/src/components/tables/settings/UserDrawer.tsx index 4e28c30bfb..92bff34da1 100644 --- a/src/frontend/src/components/tables/settings/UserDrawer.tsx +++ b/src/frontend/src/components/tables/settings/UserDrawer.tsx @@ -86,7 +86,7 @@ export function UserDrawer({ function setPermission(pk: number, data: any) { setLocked(true); api - .patch(`${apiUrl(ApiPaths.user_list)}${pk}/`, data) + .patch(apiUrl(ApiPaths.user_list, pk), data) .then(() => { notifications.show({ title: t`User permission changed successfully`, @@ -110,7 +110,7 @@ export function UserDrawer({ function setActive(pk: number, active: boolean) { setLocked(true); api - .patch(`${apiUrl(ApiPaths.user_list)}${pk}/`, { + .patch(apiUrl(ApiPaths.user_list, pk), { is_active: active }) .then(() => { diff --git a/src/frontend/src/contexts/LanguageContext.tsx b/src/frontend/src/contexts/LanguageContext.tsx index 9d23610ad2..2dc0332e99 100644 --- a/src/frontend/src/contexts/LanguageContext.tsx +++ b/src/frontend/src/contexts/LanguageContext.tsx @@ -1,7 +1,8 @@ import { i18n } from '@lingui/core'; import { t } from '@lingui/macro'; import { I18nProvider } from '@lingui/react'; -import { useEffect } from 'react'; +import { LoadingOverlay, Text } from '@mantine/core'; +import { useEffect, useRef, useState } from 'react'; import { api } from '../App'; import { useLocalState } from '../states/LocalState'; @@ -45,10 +46,43 @@ export const languages: Record = { export function LanguageContext({ children }: { children: JSX.Element }) { const [language] = useLocalState((state) => [state.language]); + const [loadedState, setLoadedState] = useState< + 'loading' | 'loaded' | 'error' + >('loading'); + const isMounted = useRef(true); + useEffect(() => { - activateLocale(language); + isMounted.current = true; + + activateLocale(language) + .then(() => { + if (isMounted.current) setLoadedState('loaded'); + }) + .catch((err) => { + console.error('Failed loading translations', err); + if (isMounted.current) setLoadedState('error'); + }); + + return () => { + isMounted.current = false; + }; }, [language]); + if (loadedState === 'loading') { + return ; + } + + if (loadedState === 'error') { + return ( + + An error occurred while loading translations, see browser console for + details. + + ); + } + + // only render the i18n Provider if the locales are fully activated, otherwise we end + // up with an error in the browser console return {children}; } diff --git a/src/frontend/src/forms/CompanyForms.tsx b/src/frontend/src/forms/CompanyForms.tsx index d7fdfb45ad..0cc178cc67 100644 --- a/src/frontend/src/forms/CompanyForms.tsx +++ b/src/frontend/src/forms/CompanyForms.tsx @@ -9,55 +9,76 @@ import { IconPackage, IconPhone } from '@tabler/icons-react'; +import { useEffect, useMemo, useState } from 'react'; -import { - ApiFormData, - ApiFormFieldSet -} from '../components/forms/fields/ApiFormField'; +import { ApiFormFieldSet } from '../components/forms/fields/ApiFormField'; import { ApiPaths } from '../enums/ApiEndpoints'; import { openEditApiForm } from '../functions/forms'; /** * Field set for SupplierPart instance */ -export function supplierPartFields(): ApiFormFieldSet { - return { - part: { - filters: { - purchaseable: true - } - }, - manufacturer_part: { - filters: { - part_detail: true, - manufacturer_detail: true - }, - adjustFilters: (filters: any, form: ApiFormData) => { - let part = form.values.part; +export function useSupplierPartFields({ + partPk, + supplierPk, + hidePart +}: { + partPk?: number; + supplierPk?: number; + hidePart?: boolean; +}) { + const [part, setPart] = useState(partPk); - if (part) { - filters.part = part; + useEffect(() => { + setPart(partPk); + }, [partPk]); + + return useMemo(() => { + const fields: ApiFormFieldSet = { + part: { + hidden: hidePart, + value: part, + onValueChange: setPart, + filters: { + purchaseable: true } + }, + manufacturer_part: { + filters: { + part_detail: true, + manufacturer_detail: true + }, + adjustFilters: (filters: any) => { + if (part) { + filters.part = part; + } - return filters; + return filters; + } + }, + supplier: {}, + SKU: { + icon: + }, + description: {}, + link: { + icon: + }, + note: { + icon: + }, + pack_quantity: {}, + packaging: { + icon: } - }, - supplier: {}, - SKU: { - icon: - }, - description: {}, - link: { - icon: - }, - note: { - icon: - }, - pack_quantity: {}, - packaging: { - icon: + }; + + if (supplierPk !== undefined) { + fields.supplier.value = supplierPk; } - }; + + return fields; + }, [part]); } /** diff --git a/src/frontend/src/forms/PartForms.tsx b/src/frontend/src/forms/PartForms.tsx index dbf8c5227e..0a46a2c8de 100644 --- a/src/frontend/src/forms/PartForms.tsx +++ b/src/frontend/src/forms/PartForms.tsx @@ -1,4 +1,5 @@ import { t } from '@lingui/macro'; +import { IconPackages } from '@tabler/icons-react'; import { ApiFormFieldSet } from '../components/forms/fields/ApiFormField'; import { ApiPaths } from '../enums/ApiEndpoints'; @@ -54,8 +55,36 @@ export function partFields({ // TODO: Set the value of the category field } + // Additional fields for creation if (!editing) { // TODO: Hide 'active' field + + fields.copy_category_parameters = {}; + + fields.initial_stock = { + icon: , + children: { + quantity: {}, + location: {} + } + }; + + fields.initial_supplier = { + children: { + supplier: { + filters: { + is_supplier: true + } + }, + sku: {}, + manufacturer: { + filters: { + is_manufacturer: true + } + }, + mpn: {} + } + }; } // TODO: pop 'expiry' field if expiry not enabled diff --git a/src/frontend/src/forms/PurchaseOrderForms.tsx b/src/frontend/src/forms/PurchaseOrderForms.tsx index a621ced059..17c7fbb55f 100644 --- a/src/frontend/src/forms/PurchaseOrderForms.tsx +++ b/src/frontend/src/forms/PurchaseOrderForms.tsx @@ -7,10 +7,7 @@ import { IconSitemap } from '@tabler/icons-react'; -import { - ApiFormData, - ApiFormFieldSet -} from '../components/forms/fields/ApiFormField'; +import { ApiFormFieldSet } from '../components/forms/fields/ApiFormField'; /* * Construct a set of fields for creating / editing a PurchaseOrderLineItem instance @@ -38,7 +35,7 @@ export function purchaseOrderLineItemFields({ supplier_detail: true, supplier: supplierId }, - adjustFilters: (filters: any, _form: ApiFormData) => { + adjustFilters: (filters: any) => { // TODO: Filter by the supplier associated with the order return filters; } diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index 56969aff45..d1113ffe8a 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -1,113 +1,112 @@ import { t } from '@lingui/macro'; +import { useMemo, useState } from 'react'; -import { - ApiFormChangeCallback, - ApiFormData, - ApiFormFieldSet -} from '../components/forms/fields/ApiFormField'; +import { ApiFormFieldSet } from '../components/forms/fields/ApiFormField'; import { ApiPaths } from '../enums/ApiEndpoints'; -import { openCreateApiForm, openEditApiForm } from '../functions/forms'; +import { useCreateApiFormModal, useEditApiFormModal } from '../hooks/UseForm'; /** * Construct a set of fields for creating / editing a StockItem instance */ -export function stockFields({ +export function useStockFields({ create = false }: { create: boolean; }): ApiFormFieldSet { - let fields: ApiFormFieldSet = { - part: { - hidden: !create, - onValueChange: (change: ApiFormChangeCallback) => { - // TODO: implement remaining functionality from old stock.py + const [part, setPart] = useState(null); + const [supplierPart, setSupplierPart] = useState(null); - // Clear the 'supplier_part' field if the part is changed - change.form.setValues({ - supplier_part: null - }); - } - }, - supplier_part: { - // TODO: icon - filters: { - part_detail: true, - supplier_detail: true - }, - adjustFilters: (filters: any, form: ApiFormData) => { - let part = form.values.part; - if (part) { - filters.part = part; + return useMemo(() => { + const fields: ApiFormFieldSet = { + part: { + value: part, + hidden: !create, + onValueChange: (change) => { + setPart(change); + // TODO: implement remaining functionality from old stock.py + + // Clear the 'supplier_part' field if the part is changed + setSupplierPart(null); } + }, + supplier_part: { + // TODO: icon + value: supplierPart, + onValueChange: setSupplierPart, + filters: { + part_detail: true, + supplier_detail: true, + ...(part ? { part } : {}) + } + }, + use_pack_size: { + hidden: !create, + description: t`Add given quantity as packs instead of individual items` + }, + location: { + hidden: !create, + filters: { + structural: false + } + // TODO: icon + }, + quantity: { + hidden: !create, + description: t`Enter initial quantity for this stock item` + }, + serial_numbers: { + // TODO: icon + field_type: 'string', + label: t`Serial Numbers`, + description: t`Enter serial numbers for new stock (or leave blank)`, + required: false, + hidden: !create + }, + serial: { + hidden: create + // TODO: icon + }, + batch: { + // TODO: icon + }, + status: {}, + expiry_date: { + // TODO: icon + }, + purchase_price: { + // TODO: icon + }, + purchase_price_currency: { + // TODO: icon + }, + packaging: { + // TODO: icon, + }, + link: { + // TODO: icon + }, + owner: { + // TODO: icon + }, + delete_on_deplete: {} + }; - return filters; - } - }, - use_pack_size: { - hidden: !create, - description: t`Add given quantity as packs instead of individual items` - }, - location: { - hidden: !create, - filters: { - structural: false - } - // TODO: icon - }, - quantity: { - hidden: !create, - description: t`Enter initial quantity for this stock item` - }, - serial_numbers: { - // TODO: icon - field_type: 'string', - label: t`Serial Numbers`, - description: t`Enter serial numbers for new stock (or leave blank)`, - required: false, - hidden: !create - }, - serial: { - hidden: create - // TODO: icon - }, - batch: { - // TODO: icon - }, - status: {}, - expiry_date: { - // TODO: icon - }, - purchase_price: { - // TODO: icon - }, - purchase_price_currency: { - // TODO: icon - }, - packaging: { - // TODO: icon, - }, - link: { - // TODO: icon - }, - owner: { - // TODO: icon - }, - delete_on_deplete: {} - }; + // TODO: Handle custom field management based on provided options + // TODO: refer to stock.py in original codebase - // TODO: Handle custom field management based on provided options - // TODO: refer to stock.py in original codebase - - return fields; + return fields; + }, [part, supplierPart]); } /** * Launch a form to create a new StockItem instance */ -export function createStockItem() { - openCreateApiForm({ +export function useCreateStockItem() { + const fields = useStockFields({ create: true }); + + return useCreateApiFormModal({ url: ApiPaths.stock_item_list, - fields: stockFields({ create: true }), + fields: fields, title: t`Create Stock Item` }); } @@ -116,17 +115,19 @@ export function createStockItem() { * Launch a form to edit an existing StockItem instance * @param item : primary key of the StockItem to edit */ -export function editStockItem({ +export function useEditStockItem({ item_id, callback }: { item_id: number; callback?: () => void; }) { - openEditApiForm({ + const fields = useStockFields({ create: false }); + + return useEditApiFormModal({ url: ApiPaths.stock_item_list, pk: item_id, - fields: stockFields({ create: false }), + fields: fields, title: t`Edit Stock Item`, successMessage: t`Stock item updated`, onFormSuccess: callback diff --git a/src/frontend/src/functions/forms.tsx b/src/frontend/src/functions/forms.tsx index d9fb12a256..127f910165 100644 --- a/src/frontend/src/functions/forms.tsx +++ b/src/frontend/src/functions/forms.tsx @@ -5,17 +5,25 @@ import { AxiosResponse } from 'axios'; import { api } from '../App'; import { ApiForm, ApiFormProps } from '../components/forms/ApiForm'; -import { ApiFormFieldType } from '../components/forms/fields/ApiFormField'; +import { + ApiFormFieldSet, + ApiFormFieldType +} from '../components/forms/fields/ApiFormField'; import { StylishText } from '../components/items/StylishText'; -import { apiUrl } from '../states/ApiState'; +import { ApiPaths } from '../enums/ApiEndpoints'; +import { PathParams, apiUrl } from '../states/ApiState'; import { invalidResponse, permissionDenied } from './notifications'; import { generateUniqueId } from './uid'; /** * Construct an API url from the provided ApiFormProps object */ -export function constructFormUrl(props: ApiFormProps): string { - return apiUrl(props.url, props.pk); +export function constructFormUrl( + url: ApiPaths, + pk?: string | number, + pathParams?: PathParams +): string { + return apiUrl(url, pk, pathParams); } /** @@ -28,7 +36,7 @@ export function extractAvailableFields( method?: string ): Record | null { // OPTIONS request *must* return 200 status - if (response.status != 200) { + if (response.status !== 200) { invalidResponse(response.status); return null; } @@ -61,31 +69,118 @@ export function extractAvailableFields( return null; } - let fields: Record = {}; + const processFields = (fields: any, _path?: string) => { + const _fields: ApiFormFieldSet = {}; - for (const fieldName in actions[method]) { - const field = actions[method][fieldName]; - fields[fieldName] = { - ...field, - name: fieldName, - field_type: field.type, - description: field.help_text, - value: field.value ?? field.default, - disabled: field.read_only ?? false - }; + for (const [fieldName, field] of Object.entries(fields) as any) { + const path = _path ? `${_path}.${fieldName}` : fieldName; + _fields[fieldName] = { + ...field, + name: path, + field_type: field.type, + description: field.help_text, + value: field.value ?? field.default, + disabled: field.read_only ?? false + }; - // Remove the 'read_only' field - plays havoc with react components - delete fields['read_only']; + // Remove the 'read_only' field - plays havoc with react components + delete _fields[fieldName].read_only; + + if ( + _fields[fieldName].field_type === 'nested object' && + _fields[fieldName].children + ) { + _fields[fieldName].children = processFields( + _fields[fieldName].children, + path + ); + } + } + + return _fields; + }; + + return processFields(actions[method]); +} + +export type NestedDict = { [key: string]: string | number | NestedDict }; +export function mapFields( + fields: ApiFormFieldSet, + fieldFunction: (path: string, value: ApiFormFieldType, key: string) => any, + _path?: string +): NestedDict { + const res: NestedDict = {}; + + for (const [k, v] of Object.entries(fields)) { + const path = _path ? `${_path}.${k}` : k; + let value; + + if (v.field_type === 'nested object' && v.children) { + value = mapFields(v.children, fieldFunction, path); + } else { + value = fieldFunction(path, v, k); + } + + if (value !== undefined) res[k] = value; } - return fields; + return res; +} + +/* + * Build a complete field definition based on the provided data + */ +export function constructField({ + field, + definition +}: { + field: ApiFormFieldType; + definition?: ApiFormFieldType; +}) { + const def = { + ...definition, + ...field + }; + + switch (def.field_type) { + case 'date': + // Change value to a date object if required + if (def.value) { + def.value = new Date(def.value); + } + break; + case 'nested object': + def.children = {}; + for (const k of Object.keys(field.children ?? {})) { + def.children[k] = constructField({ + field: field.children?.[k] ?? {}, + definition: definition?.children?.[k] ?? {} + }); + } + break; + default: + break; + } + + // Clear out the 'read_only' attribute + def.disabled = def.disabled ?? def.read_only ?? false; + delete def['read_only']; + + return def; +} + +export interface OpenApiFormProps extends ApiFormProps { + title: string; + cancelText?: string; + cancelColor?: string; + onClose?: () => void; } /* * Construct and open a modal form * @param title : */ -export function openModalApiForm(props: ApiFormProps) { +export function openModalApiForm(props: OpenApiFormProps) { // method property *must* be supplied if (!props.method) { notifications.show({ @@ -96,7 +191,28 @@ export function openModalApiForm(props: ApiFormProps) { return; } - let url = constructFormUrl(props); + // Generate a random modal ID for controller + let modalId: string = + `modal-${props.title}-${props.url}-${props.method}` + generateUniqueId(); + + props.actions = [ + ...(props.actions || []), + { + text: props.cancelText ?? t`Cancel`, + color: props.cancelColor ?? 'blue', + onClick: () => { + modals.close(modalId); + } + } + ]; + + const oldFormSuccess = props.onFormSuccess; + props.onFormSuccess = (data) => { + oldFormSuccess?.(data); + modals.close(modalId); + }; + + let url = constructFormUrl(props.url, props.pk, props.pathParams); // Make OPTIONS request first api @@ -114,10 +230,16 @@ export function openModalApiForm(props: ApiFormProps) { } } - // Generate a random modal ID for controller - let modalId: string = - `modal-${props.title}-${props.url}-${props.method}` + - generateUniqueId(); + const _props = { ...props }; + + if (_props.fields) { + for (const [k, v] of Object.entries(_props.fields)) { + _props.fields[k] = constructField({ + field: v, + definition: fields?.[k] + }); + } + } modals.open({ title: {props.title}, @@ -126,9 +248,7 @@ export function openModalApiForm(props: ApiFormProps) { onClose: () => { props.onClose ? props.onClose() : null; }, - children: ( - - ) + children: }); }) .catch((error) => { @@ -148,8 +268,8 @@ export function openModalApiForm(props: ApiFormProps) { /** * Opens a modal form to create a new model instance */ -export function openCreateApiForm(props: ApiFormProps) { - let createProps: ApiFormProps = { +export function openCreateApiForm(props: OpenApiFormProps) { + let createProps: OpenApiFormProps = { ...props, method: 'POST' }; @@ -160,8 +280,8 @@ export function openCreateApiForm(props: ApiFormProps) { /** * Open a modal form to edit a model instance */ -export function openEditApiForm(props: ApiFormProps) { - let editProps: ApiFormProps = { +export function openEditApiForm(props: OpenApiFormProps) { + let editProps: OpenApiFormProps = { ...props, fetchInitialData: props.fetchInitialData ?? true, method: 'PUT' @@ -173,8 +293,8 @@ export function openEditApiForm(props: ApiFormProps) { /** * Open a modal form to delete a model instancel */ -export function openDeleteApiForm(props: ApiFormProps) { - let deleteProps: ApiFormProps = { +export function openDeleteApiForm(props: OpenApiFormProps) { + let deleteProps: OpenApiFormProps = { ...props, method: 'DELETE', submitText: t`Delete`, diff --git a/src/frontend/src/hooks/UseForm.tsx b/src/frontend/src/hooks/UseForm.tsx new file mode 100644 index 0000000000..8cf0de9e80 --- /dev/null +++ b/src/frontend/src/hooks/UseForm.tsx @@ -0,0 +1,117 @@ +import { t } from '@lingui/macro'; +import { useId } from '@mantine/hooks'; +import { useEffect, useMemo, useRef } from 'react'; + +import { ApiFormProps, OptionsApiForm } from '../components/forms/ApiForm'; +import { useModal } from './UseModal'; + +/** + * @param title : The title to display in the modal header + * @param cancelText : Optional custom text to display on the cancel button (default: Cancel) + * @param cancelColor : Optional custom color for the cancel button (default: blue) + * @param onClose : A callback function to call when the modal is closed. + * @param onOpen : A callback function to call when the modal is opened. + */ +export interface ApiFormModalProps extends ApiFormProps { + title: string; + cancelText?: string; + cancelColor?: string; + onClose?: () => void; + onOpen?: () => void; +} + +/** + * Construct and open a modal form + */ +export function useApiFormModal(props: ApiFormModalProps) { + const id = useId(); + const modalClose = useRef(() => {}); + + const formProps = useMemo( + () => ({ + ...props, + actions: [ + ...(props.actions || []), + { + text: props.cancelText ?? t`Cancel`, + color: props.cancelColor ?? 'blue', + onClick: () => { + modalClose.current(); + } + } + ], + onFormSuccess: (data) => { + modalClose.current(); + props.onFormSuccess?.(data); + }, + onFormError: () => { + modalClose.current(); + props.onFormError?.(); + } + }), + [props] + ); + + const modal = useModal({ + title: formProps.title, + onOpen: formProps.onOpen, + onClose: formProps.onClose, + size: 'xl', + children: + }); + + useEffect(() => { + modalClose.current = modal.close; + }, [modal.close]); + + return modal; +} + +/** + * Open a modal form to create a new model instance + */ +export function useCreateApiFormModal(props: ApiFormModalProps) { + const createProps = useMemo( + () => ({ + ...props, + method: 'POST' + }), + [props] + ); + + return useApiFormModal(createProps); +} + +/** + * Open a modal form to edit a model instance + */ +export function useEditApiFormModal(props: ApiFormModalProps) { + const editProps = useMemo( + () => ({ + ...props, + fetchInitialData: props.fetchInitialData ?? true, + method: 'PUT' + }), + [props] + ); + + return useApiFormModal(editProps); +} + +/** + * Open a modal form to delete a model instance + */ +export function useDeleteApiFormModal(props: ApiFormModalProps) { + const deleteProps = useMemo( + () => ({ + ...props, + method: 'DELETE', + submitText: t`Delete`, + submitColor: 'red', + fields: {} + }), + [props] + ); + + return useApiFormModal(deleteProps); +} diff --git a/src/frontend/src/hooks/UseModal.tsx b/src/frontend/src/hooks/UseModal.tsx new file mode 100644 index 0000000000..3eb7331738 --- /dev/null +++ b/src/frontend/src/hooks/UseModal.tsx @@ -0,0 +1,44 @@ +import { MantineNumberSize, Modal } from '@mantine/core'; +import { useDisclosure } from '@mantine/hooks'; +import React, { useCallback } from 'react'; + +import { StylishText } from '../components/items/StylishText'; + +export interface UseModalProps { + title: string; + children: React.ReactElement; + size?: MantineNumberSize; + onOpen?: () => void; + onClose?: () => void; +} + +export function useModal(props: UseModalProps) { + const onOpen = useCallback(() => { + props.onOpen?.(); + }, [props.onOpen]); + + const onClose = useCallback(() => { + props.onClose?.(); + }, [props.onClose]); + + const [opened, { open, close, toggle }] = useDisclosure(false, { + onOpen, + onClose + }); + + return { + open, + close, + toggle, + modal: ( + {props.title}} + > + {props.children} + + ) + }; +} diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po index d3c4834678..0f81352b98 100644 --- a/src/frontend/src/locales/bg/messages.po +++ b/src/frontend/src/locales/bg/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: bg\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po index 47bbaca796..62ba4c1a27 100644 --- a/src/frontend/src/locales/cs/messages.po +++ b/src/frontend/src/locales/cs/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: cs\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Czech\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po index 217f7ebc3b..c81268b2b9 100644 --- a/src/frontend/src/locales/da/messages.po +++ b/src/frontend/src/locales/da/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: da\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Danish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po index 18573149d2..e72639c5ad 100644 --- a/src/frontend/src/locales/de/messages.po +++ b/src/frontend/src/locales/de/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: de\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Titel" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "Abgeschlossen" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Abbrechen" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Passwort zurücksetzen" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Mail" @@ -201,7 +201,7 @@ msgstr "Name: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "Fehler" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "Wird geladen" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "Keine Ergebnisse gefunden" @@ -233,59 +233,60 @@ msgstr "Keine Ergebnisse gefunden" msgid "Thumbnail" msgstr "Vorschaubild" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "Barcode anzeigen" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "Bearbeiten" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "Löschen" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "Element löschen" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "Duplizieren" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "Benutzereinstellungen" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "Einstellungen" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "Als gelesen markieren" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Suchtext eingeben" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Suchoptionen" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Regex Suche" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,17 +704,17 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" -msgstr "" +msgstr "Teil" #: src/components/render/ModelType.tsx:21 #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -821,11 +822,11 @@ msgstr "" #: src/components/render/ModelType.tsx:102 msgid "Purchase Order Line" -msgstr "" +msgstr "Bestellposition" #: src/components/render/ModelType.tsx:103 msgid "Purchase Order Lines" -msgstr "" +msgstr "Bestellpositionen" #: src/components/render/ModelType.tsx:107 #: src/components/tables/sales/SalesOrderTable.tsx:37 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "Seriennummer" msgid "Quantity" msgstr "Anzahl" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -950,7 +951,7 @@ msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:60 #: src/pages/sales/SalesOrderDetail.tsx:46 msgid "Line Items" -msgstr "" +msgstr "Positionen" #: src/components/tables/ColumnRenderers.tsx:78 msgid "Status" @@ -1051,6 +1052,14 @@ msgstr "Wert" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Abbrechen" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1117,7 +1126,7 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:119 #: src/components/tables/purchasing/PurchaseOrderTable.tsx:40 msgid "Reference" -msgstr "" +msgstr "Referenz" #: src/components/tables/bom/BomTable.tsx:110 msgid "Substitutes" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1206,7 +1215,7 @@ msgstr "" #: src/pages/sales/SalesOrderDetail.tsx:78 #: src/pages/stock/StockDetail.tsx:120 msgid "Notes" -msgstr "" +msgstr "Notizen" #: src/components/tables/bom/BomTable.tsx:256 msgid "View BOM" @@ -1214,7 +1223,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:267 msgid "Validate BOM line" -msgstr "" +msgstr "Stücklisten-Position bestätigen" #: src/components/tables/bom/BomTable.tsx:275 msgid "Edit Substitutes" @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1701,7 +1710,7 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:55 msgid "Receive line item" -msgstr "" +msgstr "Position empfangen" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:55 #~ msgid "Receive" @@ -1709,69 +1718,69 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:76 msgid "Edit Line Item" -msgstr "" +msgstr "Position bearbeiten" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:79 msgid "Line item updated" -msgstr "" +msgstr "Position aktualisiert" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 msgid "Part Description" -msgstr "" +msgstr "Teilebeschreibung" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" -msgstr "" +msgstr "Verpackungsmenge" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 msgid "Total Quantity" -msgstr "" +msgstr "Gesamtmenge" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 msgid "Received" -msgstr "" +msgstr "Erhalten" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 msgid "Supplier Code" -msgstr "" +msgstr "Lieferantennummer" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 msgid "Supplier Link" -msgstr "" +msgstr "Lieferanten-Link" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 msgid "Manufacturer Code" -msgstr "" +msgstr "Herstellernummer" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 msgid "Unit Price" -msgstr "" +msgstr "Preis pro Einheit" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:206 msgid "Destination" -msgstr "" +msgstr "Bestimmungsort" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 msgid "Add Line Item" -msgstr "" +msgstr "Position hinzufügen" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:230 msgid "Line item added" -msgstr "" +msgstr "Position hinzugefügt" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:239 msgid "Add line item" -msgstr "" +msgstr "Position hinzufügen" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:245 msgid "Receive items" -msgstr "" +msgstr "Erhaltene Artikel" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2620,69 +2629,69 @@ msgstr "" #: src/forms/AttachmentForms.tsx:125 msgid "Delete Attachment" -msgstr "" +msgstr "Anhang löschen" #: src/forms/AttachmentForms.tsx:126 msgid "Attachment deleted" -msgstr "" +msgstr "Anhang gelöscht" #: src/forms/AttachmentForms.tsx:130 msgid "Are you sure you want to delete this attachment?" -msgstr "" +msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen möchten?" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "Bereits angemeldet" msgid "Found an existing login - using it to log you in." msgstr "Es existiert ein Login - mit dem Sie angemeldet werden." -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "Nachname: {0}" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po index da08a7db85..f423b57e44 100644 --- a/src/frontend/src/locales/el/messages.po +++ b/src/frontend/src/locales/el/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: el\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: Greek\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po index 7ecfe2096f..bbfcb6e56d 100644 --- a/src/frontend/src/locales/en/messages.po +++ b/src/frontend/src/locales/en/messages.po @@ -17,23 +17,23 @@ msgstr "" msgid "Title" msgstr "Title" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "Form Error" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "Success" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Cancel" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -114,7 +114,7 @@ msgstr "Reset password" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Email" @@ -196,7 +196,7 @@ msgstr "Name: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "State: <0>worker ({0}), <1>plugins{1}" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -207,19 +207,19 @@ msgstr "State: <0>worker ({0}), <1>plugins{1}" msgid "Error" msgstr "Error" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "Search" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "Loading" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "No results found" @@ -228,59 +228,60 @@ msgstr "No results found" msgid "Thumbnail" msgstr "Thumbnail" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "Barcode Actions" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "View" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "View barcode" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "Link Barcode" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "Unlink Barcode" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "Unlink custom barcode" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "Edit" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "Delete" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "Delete item" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "Duplicate" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "Duplicate item" @@ -570,7 +571,7 @@ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "System Settings" @@ -626,7 +627,7 @@ msgid "About" msgstr "About" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -644,7 +645,7 @@ msgstr "Mark as read" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Part Categories" @@ -653,19 +654,19 @@ msgstr "Part Categories" msgid "results" msgstr "results" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Enter search text" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Search Options" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Regex search" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "Whole word search" @@ -698,7 +699,7 @@ msgstr "Unknown model: {model}" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -708,7 +709,7 @@ msgstr "Part" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -724,7 +725,7 @@ msgid "Part Parameter Templates" msgstr "Part Parameter Templates" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "Supplier Part" @@ -746,7 +747,7 @@ msgid "Part Category" msgstr "Part Category" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "Stock Item" @@ -797,7 +798,7 @@ msgid "Project Code" msgstr "Project Code" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "Project Codes" @@ -807,7 +808,7 @@ msgid "Purchase Order" msgstr "Purchase Order" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -829,7 +830,7 @@ msgid "Sales Order" msgstr "Sales Order" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -908,21 +909,21 @@ msgstr "Serial Number" msgid "Quantity" msgstr "Quantity" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "Setting updated" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "{0} updated successfully" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "Error editing setting" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "Edit Setting" @@ -1046,6 +1047,14 @@ msgstr "Value" msgid "Select filter value" msgstr "Select filter value" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Cancel" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "Add Filter" @@ -1192,7 +1201,7 @@ msgstr "Consumable item" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1449,7 +1458,7 @@ msgstr "IPN" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1716,8 +1725,8 @@ msgstr "Part Description" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "Pack Quantity" @@ -1766,7 +1775,7 @@ msgid "Receive items" msgstr "Receive items" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "Supplier" @@ -1775,64 +1784,64 @@ msgstr "Supplier" msgid "Supplier Reference" msgstr "Supplier Reference" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "Manufacturer" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "MPN" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "In Stock" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "Packaging" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "Base units" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "Availability" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "Updated" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "Add Supplier Part" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "Supplier part created" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "Add supplier part" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "Edit Supplier Part" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "Supplier part updated" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "Delete Supplier Part" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "Supplier part deleted" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "Are you sure you want to remove this supplier part?" @@ -2203,123 +2212,123 @@ msgstr "Appearance" msgid "Show Boxes" msgstr "Show Boxes" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "Bulgarian" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "Czech" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "Danish" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "German" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "Greek" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "English" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "Spanish" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "Spanish (Mexican)" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "Farsi / Persian" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "Finnish" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "French" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "Hebrew" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "Hindi" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "Hungarian" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "Italian" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "Japanese" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "Korean" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "Dutch" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "Norwegian" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "Polish" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "Portuguese" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "Portuguese (Brazilian)" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "Russian" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "Slovenian" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "Swedish" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "Thai" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "Turkish" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "Vietnamese" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "Chinese (Simplified)" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "Chinese (Traditional)" @@ -2435,7 +2444,7 @@ msgstr "Sales" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "Playground" @@ -2625,59 +2634,59 @@ msgstr "Attachment deleted" msgid "Are you sure you want to delete this attachment?" msgstr "Are you sure you want to delete this attachment?" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "Edit Company" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "Company updated" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "Create Part" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "Part created" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "Edit Part" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "Part updated" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "Parent part category" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "Add given quantity as packs instead of individual items" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "Enter initial quantity for this stock item" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "Serial Numbers" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Enter serial numbers for new stock (or leave blank)" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "Edit Stock Item" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "Stock item updated" @@ -2714,25 +2723,19 @@ msgstr "Already logged in" msgid "Found an existing login - using it to log you in." msgstr "Found an existing login - using it to log you in." -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "Form Error" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "Form method not provided" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "Response did not contain action data" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "Invalid Form" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "method parameter not supplied" @@ -2826,7 +2829,7 @@ msgstr "This page is a replacement for the old start page with the same informat msgid "Welcome to your Dashboard{0}" msgstr "Welcome to your Dashboard{0}" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "This page is a showcase for the possibilities of Platform UI." @@ -2987,7 +2990,7 @@ msgid "Actions for {0}" msgstr "Actions for {0}" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "Count" @@ -3096,86 +3099,86 @@ msgstr "Last name: {0}" msgid "Use pseudo language" msgstr "Use pseudo language" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "Single Sign On Accounts" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "Not enabled" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "Single Sign On is not enabled for this server" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "Multifactor" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "Multifactor authentication is not configured for your account" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "The following email addresses are associated with your account:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "Primary" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "Verified" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "Unverified" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "Add Email Address" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "E-Mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "E-Mail address" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "Make Primary" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "Re-send Verification" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "Remove" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "Add Email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "Provider has not been configured" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "Not configured" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "There are no social network accounts connected to this account." -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "You can sign in to your account using any of the following third party accounts" @@ -3247,46 +3250,46 @@ msgstr "Advanced Options" msgid "Plugin Settings" msgstr "Plugin Settings" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "Login" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Barcodes" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "Physical Units" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "Pricing" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "Labels" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "Reporting" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "Part Parameters" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "Stocktake" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3294,7 +3297,7 @@ msgstr "Stocktake" msgid "Build Orders" msgstr "Build Orders" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "Switch to User Setting" @@ -3614,39 +3617,39 @@ msgstr "Child Items" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "Stock Operations" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 +msgid "Stock Operations" +msgstr "Stock Operations" + +#: src/pages/stock/StockDetail.tsx:169 msgid "Count stock" msgstr "Count stock" -#: src/pages/stock/StockDetail.tsx:168 +#: src/pages/stock/StockDetail.tsx:173 msgid "Add" msgstr "Add" -#: src/pages/stock/StockDetail.tsx:169 +#: src/pages/stock/StockDetail.tsx:174 msgid "Add stock" msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:174 +#: src/pages/stock/StockDetail.tsx:179 msgid "Remove stock" msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:178 +#: src/pages/stock/StockDetail.tsx:183 msgid "Transfer" msgstr "Transfer" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "Transfer stock" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "Duplicate stock item" diff --git a/src/frontend/src/locales/es-mx/messages.po b/src/frontend/src/locales/es-mx/messages.po index 34fa79b27d..d28cd96986 100644 --- a/src/frontend/src/locales/es-mx/messages.po +++ b/src/frontend/src/locales/es-mx/messages.po @@ -17,23 +17,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -99,7 +99,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -177,7 +177,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -188,19 +188,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -209,59 +209,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -551,7 +552,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -599,7 +600,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -617,7 +618,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -626,19 +627,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -671,7 +672,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -681,7 +682,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -697,7 +698,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -719,7 +720,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -770,7 +771,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -780,7 +781,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -802,7 +803,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -881,21 +882,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1019,6 +1020,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1165,7 +1174,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1422,7 +1431,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1685,8 +1694,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1735,7 +1744,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1744,64 +1753,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2172,123 +2181,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2396,7 +2405,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2522,59 +2531,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2607,25 +2616,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2715,7 +2718,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2752,7 +2755,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -2861,86 +2864,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3012,46 +3015,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3059,7 +3062,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3363,39 +3366,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po index 6caeee2400..21a748bd5e 100644 --- a/src/frontend/src/locales/es/messages.po +++ b/src/frontend/src/locales/es/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es_MX\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Restablecer contraseña" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Correo electrónico" @@ -201,7 +201,7 @@ msgstr "Nombre: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po index e7fca11451..451a78f034 100644 --- a/src/frontend/src/locales/fa/messages.po +++ b/src/frontend/src/locales/fa/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fa\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Persian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po index 921c56e415..7ede93e72c 100644 --- a/src/frontend/src/locales/fi/messages.po +++ b/src/frontend/src/locales/fi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po index ed2f17fad0..45f5ca50c1 100644 --- a/src/frontend/src/locales/fr/messages.po +++ b/src/frontend/src/locales/fr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: fr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:06\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Titre" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Annuler" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Réinitialiser le mot de passe" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Email" @@ -201,7 +201,7 @@ msgstr "Nom : {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "Erreur" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "Miniature" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "Paramètres du compte" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "À propos" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Catégories de composants" @@ -658,19 +659,19 @@ msgstr "Catégories de composants" msgid "results" msgstr "résultats" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Entrez un texte à rechercher" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Options de recherche" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Recherche par regex" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "Recherche par mot entier" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Annuler" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "Déjà connecté" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "Nom : {0}" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "Ordres de fabrication" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po index f4f99b2855..f78b6a957f 100644 --- a/src/frontend/src/locales/he/messages.po +++ b/src/frontend/src/locales/he/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: he\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po index a16280ff20..3536d0a7dc 100644 --- a/src/frontend/src/locales/hi/messages.po +++ b/src/frontend/src/locales/hi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: hi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "शीर्षक" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "पासवर्ड रीसेट करें" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "ई-मेल" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po index 98e114aa3c..42391cdc79 100644 --- a/src/frontend/src/locales/hu/messages.po +++ b/src/frontend/src/locales/hu/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: hu\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Cím" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "Form hiba" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "Siker" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "Form hibák vannak" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Mégsem" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Jelszó visszaállítása" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Email" @@ -201,7 +201,7 @@ msgstr "Név: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Státusz: <0>worker ({0}), <1>plugins{1}" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "Státusz: <0>worker ({0}), <1>plugins{1}" msgid "Error" msgstr "Hiba" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "Keresés" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "Betöltés" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "Nincs találat" @@ -233,59 +233,60 @@ msgstr "Nincs találat" msgid "Thumbnail" msgstr "Bélyegkép" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "Szerkesztés" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "Törlés" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "Fiókbeállítások" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "Névjegy" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "Megjelölés olvasottként" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Alkatrész kategóriák" @@ -658,19 +659,19 @@ msgstr "Alkatrész kategóriák" msgid "results" msgstr "eredmények" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Írd be a keresett szöveget" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Keresési opciók" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Regex keresés" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "Teljes szó keresés" @@ -703,7 +704,7 @@ msgstr "Ismeretlen model: {model}" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "Alkatrész" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "Alkatrész kategória" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "Projektszám" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "Mennyiség" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "Érték" msgid "Select filter value" msgstr "Szűrő érték kiválasztása" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Mégsem" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "Szűrő hozzáadása" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "IPN" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "Megjelenítés" msgid "Show Boxes" msgstr "Dobozok megjelenítése" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "Játszótér" @@ -2630,59 +2639,59 @@ msgstr "Melléklet törölve" msgid "Are you sure you want to delete this attachment?" msgstr "Biztos törölni akarod ezt a mellékletet?" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "Alkatrész létrehozása" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "Alkatrész létrehozva" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "Alkatrész szerkesztése" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "Alkatrész frissítve" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "Felsőbb szintű alkatrész kategória" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "Sorozatszámok" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "Készlet tétel létrehozása" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "Készlet tétel szerkesztése" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "Már bejelentkeztél" msgid "Found an existing login - using it to log you in." msgstr "Van ilyen login - azt használom a belépéshez." -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "Form hiba" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "Form metódus nincs megadva" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "A válaszban nincs művelet adat" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "Érvénytelen űrlap" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "metódus paraméter nem támogatott" @@ -2831,7 +2834,7 @@ msgstr "Ez az oldal helyettesíti a régi kezdőoldalt, ugyanazokkal az informá msgid "Welcome to your Dashboard{0}" msgstr "Irányítópult: {0}" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Ez az oldal a Platform UI lehetőségeit mutatja be." @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "{0} műveletei" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "Mennyiség" @@ -3101,86 +3104,86 @@ msgstr "Családi név: {0}" msgid "Use pseudo language" msgstr "Használj pszeudo nyelvet" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "Árazás" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "Gyártási utasítások" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "Gyermek tételek" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po index 08bccfa40a..a5bae56b9d 100644 --- a/src/frontend/src/locales/id/messages.po +++ b/src/frontend/src/locales/id/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: id\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po index f1935cf08a..79d786b179 100644 --- a/src/frontend/src/locales/it/messages.po +++ b/src/frontend/src/locales/it/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: it\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Italian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po index 47391be091..54de33e8d3 100644 --- a/src/frontend/src/locales/ja/messages.po +++ b/src/frontend/src/locales/ja/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ja\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "タイトル" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "キャンセル" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "パスワードを再設定" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "メールアドレス" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "エラー" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "読み込み中" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "サムネイル" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "編集" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "削除" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "既読にする" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "パーツ" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "在庫商品" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "値" msgid "Select filter value" msgstr "フィルタの値を選択" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "キャンセル" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "フィルタを追加" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "この商品の初期数量を入力" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "在庫商品を追加" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "在庫商品を編集" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "価格" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po index 8f1c2a1954..28a85e35de 100644 --- a/src/frontend/src/locales/ko/messages.po +++ b/src/frontend/src/locales/ko/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ko\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Korean\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po index c56a96cf2b..97913c5e5d 100644 --- a/src/frontend/src/locales/nl/messages.po +++ b/src/frontend/src/locales/nl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: nl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po index 1ba527d518..93cd5d91ff 100644 --- a/src/frontend/src/locales/no/messages.po +++ b/src/frontend/src/locales/no/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: no\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po index b5c643b39e..6a2460b6d5 100644 --- a/src/frontend/src/locales/pl/messages.po +++ b/src/frontend/src/locales/pl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Polish\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Tytuł" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/pseudo-LOCALE/messages.po b/src/frontend/src/locales/pseudo-LOCALE/messages.po index bfa7a08ead..ca636c3e0d 100644 --- a/src/frontend/src/locales/pseudo-LOCALE/messages.po +++ b/src/frontend/src/locales/pseudo-LOCALE/messages.po @@ -57,23 +57,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -154,7 +154,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -236,7 +236,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -247,19 +247,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -268,59 +268,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -614,7 +615,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -670,7 +671,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -688,7 +689,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -697,19 +698,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -742,7 +743,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -752,7 +753,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -768,7 +769,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -790,7 +791,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -841,7 +842,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -851,7 +852,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -873,7 +874,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -952,21 +953,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1090,6 +1091,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1236,7 +1245,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1493,7 +1502,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1760,8 +1769,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1810,7 +1819,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1819,64 +1828,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2247,123 +2256,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2479,7 +2488,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2669,59 +2678,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2758,25 +2767,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2870,7 +2873,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3031,7 +3034,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3140,86 +3143,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3291,46 +3294,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3338,7 +3341,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3658,39 +3661,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/pt-br/messages.po b/src/frontend/src/locales/pt-br/messages.po index 25914b46bf..21341e8c14 100644 --- a/src/frontend/src/locales/pt-br/messages.po +++ b/src/frontend/src/locales/pt-br/messages.po @@ -17,23 +17,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -99,7 +99,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -177,7 +177,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -188,19 +188,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -209,59 +209,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -551,7 +552,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -599,7 +600,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -617,7 +618,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -626,19 +627,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -671,7 +672,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -681,7 +682,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -697,7 +698,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -719,7 +720,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -770,7 +771,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -780,7 +781,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -802,7 +803,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -881,21 +882,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1019,6 +1020,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1165,7 +1174,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1422,7 +1431,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1685,8 +1694,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1735,7 +1744,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1744,64 +1753,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2172,123 +2181,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2396,7 +2405,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2522,59 +2531,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2607,25 +2616,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2715,7 +2718,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2752,7 +2755,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -2861,86 +2864,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3012,46 +3015,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3059,7 +3062,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3363,39 +3366,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po index 3d3db832e2..94c4c1f48a 100644 --- a/src/frontend/src/locales/pt/messages.po +++ b/src/frontend/src/locales/pt/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pt\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Título" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "Erro no formulário" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "Sucesso" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "Há erros de formulário" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Cancelar" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Redefinir senha" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Email" @@ -201,7 +201,7 @@ msgstr "Nome: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Estado: <0>funcionário ({0}), <1>extensões{1}" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "Estado: <0>funcionário ({0}), <1>extensões{1}" msgid "Error" msgstr "Erro" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "Buscar" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "Carregando" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "Nenhum resultado encontrado" @@ -233,59 +233,60 @@ msgstr "Nenhum resultado encontrado" msgid "Thumbnail" msgstr "Miniatura" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "Editar" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "Excluir" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "Configurações de conta" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "Sobre" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Categorias de Peça" @@ -658,19 +659,19 @@ msgstr "Categorias de Peça" msgid "results" msgstr "resultados" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Digite o texto de pesquisa" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Opções de pesquisa" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Busca por Regex" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "Pesquisa de palavras inteira" @@ -703,7 +704,7 @@ msgstr "Modelo desconhecido: {model}" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "Peça" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "Código do Projeto" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "Quantidade" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "Valor" msgid "Select filter value" msgstr "Selecionar valor do filtro" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Cancelar" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "Adicionar Filtro" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "IPN" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "Aparência" msgid "Show Boxes" msgstr "Mostrar Caixas" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "Área de testes" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "Criar Peça" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "Peça criada" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "Editar Peça" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "Peça atualizada" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "Categoria de peça parental" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "Adicionar quantidade dada como pacotes e não itens individuais" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "Inserir quantidade inicial deste item de estoque" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "Números de Série" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Insira o número de série para novo estoque (ou deixe em branco)" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "Criar Item de Estoque" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "Editar Item do Estoque" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "Já conectado" msgid "Found an existing login - using it to log you in." msgstr "Encontrado uma conta existente - usando-o para iniciar sessão." -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "Erro no formulário" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "Método de formulário não fornecido" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "A resposta não contém dados de ação" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "Formulário inválido" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "parâmetro do método não fornecido" @@ -2831,7 +2834,7 @@ msgstr "Esta página é uma substituição para a página inicial antiga com as msgid "Welcome to your Dashboard{0}" msgstr "Bem-vindo ao seu painel{0}" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Esta página é uma demonstração para as possibilidades da interface de plataforma." @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "Sobrenome: {0}" msgid "Use pseudo language" msgstr "Usar pseudo-idioma" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "Preços" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "Ordens de Produções" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po index 6cb18a2cef..fca682daa7 100644 --- a/src/frontend/src/locales/ru/messages.po +++ b/src/frontend/src/locales/ru/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ru\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Russian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Заголовок" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "Успешно" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "Форма содержит ошибки" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Отменить" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Сбросить пароль" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Электронная почта" @@ -201,7 +201,7 @@ msgstr "Название: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Состояние: <0>рабочий ({0}), <1>плагины{1}" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "Состояние: <0>рабочий ({0}), <1>плагины{ msgid "Error" msgstr "Ошибка" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "Поиск" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "Загрузка" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "Ничего не найдено" @@ -233,59 +233,60 @@ msgstr "Ничего не найдено" msgid "Thumbnail" msgstr "Миниатюра" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "Изменить" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "Удалить" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "Настройки аккаунта" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "Пометить как прочитанное" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Категории деталей" @@ -658,19 +659,19 @@ msgstr "Категории деталей" msgid "results" msgstr "результаты" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Введите слова для поиска" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Параметры поиска" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Поиск по выражению" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "Неизвестная модель: {model}" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "Значение" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Отменить" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "Добавить фильтр" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "Фамилия: {0}" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "Заказы на сборку" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po index 654cfa5357..35598733e7 100644 --- a/src/frontend/src/locales/sl/messages.po +++ b/src/frontend/src/locales/sl/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sl\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po index 11bfbe3452..baa017f121 100644 --- a/src/frontend/src/locales/sv/messages.po +++ b/src/frontend/src/locales/sv/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: sv\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Titel" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Avbryt" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Återställ lösenord" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "E-post" @@ -201,7 +201,7 @@ msgstr "Namn: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "Fel" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "Sök" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "Inga resultat hittades" @@ -233,59 +233,60 @@ msgstr "Inga resultat hittades" msgid "Thumbnail" msgstr "Miniatyrbild" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "Redigera" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "Radera" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "Kontoinställningar" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "Om" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Artikelkategorier" @@ -658,19 +659,19 @@ msgstr "Artikelkategorier" msgid "results" msgstr "resultat" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Ange sökord" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Sökalternativ" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "Hela ordsökningen" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "Artkel" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "Projektkod" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "Antal" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "Värde" msgid "Select filter value" msgstr "Välj filtervärde" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Avbryt" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "Lägg till filter" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "IAN" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "Serienummer" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "Redan inloggad" msgid "Found an existing login - using it to log you in." msgstr "Hittade en befintlig inloggning - använder den för att logga in dig." -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "Denna sida är en ersättning för den gamla startsidan med samma inform msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "Efternamn: {0}" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "Byggordrar" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po index ef28259ff5..379c3b0db8 100644 --- a/src/frontend/src/locales/th/messages.po +++ b/src/frontend/src/locales/th/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: th\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Thai\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po index 1e8931dab2..679463a551 100644 --- a/src/frontend/src/locales/tr/messages.po +++ b/src/frontend/src/locales/tr/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: tr\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:28\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Başlık" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "Başarılı" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Vazgeç" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Parolayı sıfırla" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "E-posta" @@ -201,7 +201,7 @@ msgstr "İsim: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Durum: <0>worker ({0}), <1>eklenti{1}" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "Durum: <0>worker ({0}), <1>eklenti{1}" msgid "Error" msgstr "Hata" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "Yükleniyor" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "Küçük resim" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "Hesap ayarları" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "Hakkında" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Parça Kategorileri" @@ -658,19 +659,19 @@ msgstr "Parça Kategorileri" msgid "results" msgstr "sonuçlar" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Arama metnini gir" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Arama Seçenekleri" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Regex arama" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "Tam kelime arama" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "Parça" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "Proje Kodu" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "Miktar" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "Değer" msgid "Select filter value" msgstr "Filtre değeri seç" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Vazgeç" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "Filtre Ekle" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "DPN" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "Görünüm" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "Zaten giriş yapılmış" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "Soyad: {0}" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "Yapım İşi Emirleri" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po index 40575d678a..97b670738a 100644 --- a/src/frontend/src/locales/vi/messages.po +++ b/src/frontend/src/locales/vi/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: vi\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-13 21:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "Tiêu đề" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "Lỗi form" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "Thành công" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "Từ các lỗi hiện hữu" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "Hủy bỏ" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "Đặt lại mật khẩu" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "Địa chỉ email" @@ -143,11 +143,11 @@ msgstr "Tôi sẽ sử dụng tên đăng nhập và mật khẩu" #: src/components/forms/AuthenticationForm.tsx:145 msgid "Log In" -msgstr "" +msgstr "Đăng nhập" #: src/components/forms/AuthenticationForm.tsx:147 msgid "Send Email" -msgstr "" +msgstr "Gửi email" #: src/components/forms/HostOptionsForm.tsx:36 #: src/components/forms/HostOptionsForm.tsx:66 @@ -201,7 +201,7 @@ msgstr "Tên: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Trạng thái: <0>worker ({0}), <1>plugins{1}" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "Trạng thái: <0>worker ({0}), <1>plugins{1}" msgid "Error" msgstr "Lỗi" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "Tìm kiếm" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "Đang tải" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "Không có kết quả nào được tìm thấy" @@ -233,65 +233,66 @@ msgstr "Không có kết quả nào được tìm thấy" msgid "Thumbnail" msgstr "Ảnh thu nhỏ" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" -msgstr "" +msgstr "Chức năng mã vạch" + +#: src/components/items/ActionDropdown.tsx:101 +msgid "View" +msgstr "Xem" #: src/components/items/ActionDropdown.tsx:102 -msgid "View" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:103 msgid "View barcode" -msgstr "" +msgstr "Xem mã vạch" + +#: src/components/items/ActionDropdown.tsx:118 +msgid "Link Barcode" +msgstr "Liên kết mã vạch" #: src/components/items/ActionDropdown.tsx:119 -msgid "Link Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:120 msgid "Link custom barcode" -msgstr "" +msgstr "Liên kết mã vạch tùy chỉnh" + +#: src/components/items/ActionDropdown.tsx:135 +msgid "Unlink Barcode" +msgstr "Gỡ liên kết mã vạch" #: src/components/items/ActionDropdown.tsx:136 -msgid "Unlink Barcode" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:137 msgid "Unlink custom barcode" -msgstr "" +msgstr "Gỡ bỏ mã vạch tùy chỉnh" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "Sửa" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "Xóa" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" -msgstr "" +msgstr "Xoá mặt hàng" + +#: src/components/items/ActionDropdown.tsx:192 +#: src/components/tables/RowActions.tsx:27 +#: src/pages/stock/StockDetail.tsx:195 +msgid "Duplicate" +msgstr "Nhân bản" #: src/components/items/ActionDropdown.tsx:193 -#: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 -msgid "Duplicate" -msgstr "" - -#: src/components/items/ActionDropdown.tsx:194 msgid "Duplicate item" -msgstr "" +msgstr "Nhân bản hàng hóa" #: src/components/items/CopyButton.tsx:18 msgid "Copy to clipboard" -msgstr "" +msgstr "Sao chép đến bảng tạm" #: src/components/items/DocTooltip.tsx:94 msgid "Read More" @@ -317,7 +318,7 @@ msgstr "Logo InvenTree" #: src/components/items/OnlyStaff.tsx:9 #: src/components/modals/AboutInvenTreeModal.tsx:30 msgid "This information is only available for staff users" -msgstr "" +msgstr "Thông tin này chỉ khả dụng với nhân viên" #: src/components/items/Placeholder.tsx:14 msgid "This feature/button/site is a placeholder for a feature that is not implemented, only partial or intended for testing." @@ -345,80 +346,80 @@ msgstr "Không" #: src/components/modals/AboutInvenTreeModal.tsx:85 msgid "Your InvenTree version status is" -msgstr "" +msgstr "Trạng thái phiên bản InvenTree của bạn" #: src/components/modals/AboutInvenTreeModal.tsx:89 msgid "Development Version" -msgstr "" +msgstr "Phiên bản phát triển" #: src/components/modals/AboutInvenTreeModal.tsx:93 msgid "Up to Date" -msgstr "" +msgstr "Mới nhất" #: src/components/modals/AboutInvenTreeModal.tsx:97 msgid "Update Available" -msgstr "" +msgstr "Có bản cập nhật mới" #: src/components/modals/AboutInvenTreeModal.tsx:102 msgid "Version Information" -msgstr "" +msgstr "Thông tin phiên bản" #: src/components/modals/AboutInvenTreeModal.tsx:110 msgid "InvenTree Version" -msgstr "" +msgstr "Phiên bản InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:116 msgid "Commit Hash" -msgstr "" +msgstr "Commit Hash" #: src/components/modals/AboutInvenTreeModal.tsx:121 msgid "Commit Date" -msgstr "" +msgstr "Ngày commit" #: src/components/modals/AboutInvenTreeModal.tsx:126 msgid "Commit Branch" -msgstr "" +msgstr "Nhánh commit" #: src/components/modals/AboutInvenTreeModal.tsx:131 #: src/components/modals/ServerInfoModal.tsx:124 msgid "API Version" -msgstr "" +msgstr "Phiên bản API" #: src/components/modals/AboutInvenTreeModal.tsx:134 msgid "Python Version" -msgstr "" +msgstr "Phiên bản Python" #: src/components/modals/AboutInvenTreeModal.tsx:137 msgid "Django Version" -msgstr "" +msgstr "Phiên bản Django" #: src/components/modals/AboutInvenTreeModal.tsx:147 msgid "Links" -msgstr "" +msgstr "Liên kết" #: src/components/modals/AboutInvenTreeModal.tsx:153 msgid "InvenTree Documentation" -msgstr "" +msgstr "Tài liệu InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:154 msgid "View Code on GitHub" -msgstr "" +msgstr "Xem mã trên Github" #: src/components/modals/AboutInvenTreeModal.tsx:155 msgid "Credits" -msgstr "" +msgstr "Đóng góp" #: src/components/modals/AboutInvenTreeModal.tsx:156 msgid "Mobile App" -msgstr "" +msgstr "Ứng dụng di động" #: src/components/modals/AboutInvenTreeModal.tsx:157 msgid "Submit Bug Report" -msgstr "" +msgstr "Gửi báo cáo lỗi" #: src/components/modals/AboutInvenTreeModal.tsx:167 msgid "Copy version information" -msgstr "" +msgstr "Sao chép thông tin phiên bản" #: src/components/modals/QrCodeModal.tsx:72 msgid "Unknown response" @@ -481,67 +482,67 @@ msgstr "Máy chủ" #: src/components/modals/ServerInfoModal.tsx:23 msgid "Instance Name" -msgstr "" +msgstr "Tên thực thể" #: src/components/modals/ServerInfoModal.tsx:29 msgid "Database" -msgstr "" +msgstr "Cơ sở dữ liệu" #: src/components/modals/ServerInfoModal.tsx:38 msgid "Bebug Mode" -msgstr "" +msgstr "Chế độ gỡ lỗi" #: src/components/modals/ServerInfoModal.tsx:41 msgid "Server is running in debug mode" -msgstr "" +msgstr "Máy chủ đang hoạt động dưới chế độ gỡ lỗi" #: src/components/modals/ServerInfoModal.tsx:48 msgid "Docker Mode" -msgstr "" +msgstr "Chế độ Docker" #: src/components/modals/ServerInfoModal.tsx:51 msgid "Server is deployed using docker" -msgstr "" +msgstr "Máy chủ được triển khai bởi docker" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Plugin Support" -msgstr "" +msgstr "Hỗ trợ phần bổ sung" #: src/components/modals/ServerInfoModal.tsx:62 msgid "Plugin support enabled" -msgstr "" +msgstr "Hỗ trợ phần bổ sung đã bật" #: src/components/modals/ServerInfoModal.tsx:64 msgid "Plugin support disabled" -msgstr "" +msgstr "Hỗ trợ phần bổ sung đã tắt" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Server status" -msgstr "" +msgstr "Tình trạng máy chủ" #: src/components/modals/ServerInfoModal.tsx:77 msgid "Healthy" -msgstr "" +msgstr "Sức khỏe" #: src/components/modals/ServerInfoModal.tsx:79 msgid "Issues detected" -msgstr "" +msgstr "Đã phát hiện vấn đề" #: src/components/modals/ServerInfoModal.tsx:88 msgid "Background Worker" -msgstr "" +msgstr "Nhân công chạy ngầm" #: src/components/modals/ServerInfoModal.tsx:92 msgid "Background worker not running" -msgstr "" +msgstr "Nhân công chạy ngầm không hoạt động" #: src/components/modals/ServerInfoModal.tsx:100 msgid "Email Settings" -msgstr "" +msgstr "Thiết lập email" #: src/components/modals/ServerInfoModal.tsx:104 msgid "Email settings not configured" -msgstr "" +msgstr "Chưa cấu hình thiết lập email" #: src/components/modals/ServerInfoModal.tsx:112 #: src/components/tables/plugin/PluginListTable.tsx:86 @@ -550,7 +551,7 @@ msgstr "Phiên bản" #: src/components/modals/ServerInfoModal.tsx:118 msgid "Server Version" -msgstr "" +msgstr "Phiên bản máy chủ" #: src/components/nav/MainMenu.tsx:40 #: src/pages/Index/Profile/Profile.tsx:15 @@ -575,7 +576,7 @@ msgstr "Cài đặt tài khoản" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "Thiết lập hệ thống" @@ -631,7 +632,7 @@ msgid "About" msgstr "Giới thiệu" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "Đánh dấu đã đọc" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "Danh mục phụ kiện" @@ -658,19 +659,19 @@ msgstr "Danh mục phụ kiện" msgid "results" msgstr "kết quả" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "Nhập văn bản tìm kiếm" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "Tùy chọn tìm kiếm" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "Tìm kiếm regex" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "Tìm phù hợp toàn bộ từ" @@ -703,7 +704,7 @@ msgstr "Model không rõ: {model}" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "Phụ kiện" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "Mẫu tham số phụ kiện" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "Phụ kiện nhà cung cấp" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "Danh mục phụ kiện" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "Hàng trong kho" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "Mã dự án" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "Mã dự án" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "Đơn đặt mua" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "Đơn đặt bán" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "Số lượng" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "Cài đặt đã được cập nhật" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "{0} đã được cập nhật thành công" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "Lỗi sửa thiết lập" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "Sửa thiết lập" @@ -1051,6 +1052,14 @@ msgstr "Giá trị" msgid "Select filter value" msgstr "Lựa chọn giá trị để lọc" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "Hủy bỏ" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "Thêm bộ lọc" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1436,15 +1445,15 @@ msgstr "" #: src/components/tables/part/PartParameterTemplateTable.tsx:95 msgid "Create Parameter Template" -msgstr "" +msgstr "Tạo mẫu tham số" #: src/components/tables/part/PartParameterTemplateTable.tsx:97 msgid "Parameter template created" -msgstr "" +msgstr "Mẫu tham số đã được tạo" #: src/components/tables/part/PartParameterTemplateTable.tsx:105 msgid "Add parameter template" -msgstr "" +msgstr "Thêm mẫu tham số" #: src/components/tables/part/PartTable.tsx:39 msgid "IPN" @@ -1454,7 +1463,7 @@ msgstr "IPN" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1463,19 +1472,19 @@ msgstr "Kho hàng" #: src/components/tables/part/PartTable.tsx:82 msgid "Minimum stock" -msgstr "" +msgstr "Kho tối thiểu" #: src/components/tables/part/PartTable.tsx:91 msgid "On Order" -msgstr "" +msgstr "On Order" #: src/components/tables/part/PartTable.tsx:104 msgid "Build Order Allocations" -msgstr "" +msgstr "Phân bổ đơn hàng bản dựng" #: src/components/tables/part/PartTable.tsx:113 msgid "Sales Order Allocations" -msgstr "" +msgstr "Phân bổ đơn hàng bán" #: src/components/tables/part/PartTable.tsx:176 msgid "Filter by part active status" @@ -1629,55 +1638,55 @@ msgstr "Mô tả không có sẵn" #: src/components/tables/plugin/PluginListTable.tsx:105 msgid "Activate Plugin" -msgstr "" +msgstr "Kích hoạt phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:105 msgid "Deactivate Plugin" -msgstr "" +msgstr "Tắt phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:114 msgid "Confirm plugin activation" -msgstr "" +msgstr "Xác nhận kích hoạt phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:115 msgid "Confirm plugin deactivation" -msgstr "" +msgstr "Xác nhận tắt phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:121 msgid "The following plugin will be activated" -msgstr "" +msgstr "Những phần bổ sung sau đây sẽ được kích hoạt" #: src/components/tables/plugin/PluginListTable.tsx:122 msgid "The following plugin will be deactivated" -msgstr "" +msgstr "Những phần bổ sung sau đây sẽ bị tắt" #: src/components/tables/plugin/PluginListTable.tsx:133 msgid "Confirm" -msgstr "" +msgstr "Xác nhận" #: src/components/tables/plugin/PluginListTable.tsx:143 msgid "Activating plugin" -msgstr "" +msgstr "Kích hoạt phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:143 msgid "Deactivating plugin" -msgstr "" +msgstr "Tắt phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:153 msgid "Plugin updated" -msgstr "" +msgstr "Đã cập nhật phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:155 msgid "The plugin was activated" -msgstr "" +msgstr "Phần bổ sung đã được kích hoạt" #: src/components/tables/plugin/PluginListTable.tsx:156 msgid "The plugin was deactivated" -msgstr "" +msgstr "Phần bổ sung đã bị tắt" #: src/components/tables/plugin/PluginListTable.tsx:164 msgid "Error updating plugin" -msgstr "" +msgstr "Lỗi cập nhật phần bổ sung" #: src/components/tables/plugin/PluginListTable.tsx:181 msgid "Deactivate" @@ -1701,7 +1710,7 @@ msgstr "Đã cài đặt" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:55 msgid "Receive line item" -msgstr "" +msgstr "Nhận hạng mục" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:55 #~ msgid "Receive" @@ -1709,135 +1718,135 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:76 msgid "Edit Line Item" -msgstr "" +msgstr "Sửa hạng mục" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:79 msgid "Line item updated" -msgstr "" +msgstr "Đã cập nhật hạng mục" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 msgid "Part Description" -msgstr "" +msgstr "Mô tả sản phẩm" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" -msgstr "" +msgstr "Số lượng gói" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:143 msgid "Total Quantity" -msgstr "" +msgstr "Tổng số lượng" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 msgid "Received" -msgstr "" +msgstr "Đã nhận" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:178 msgid "Supplier Code" -msgstr "" +msgstr "Mã nhà cung cấp" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 msgid "Supplier Link" -msgstr "" +msgstr "Liên kết nhà cung cấp" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:192 msgid "Manufacturer Code" -msgstr "" +msgstr "Mã nhà sản xuất" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 msgid "Unit Price" -msgstr "" +msgstr "Đơn giá" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:206 msgid "Destination" -msgstr "" +msgstr "Đích đến" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 msgid "Add Line Item" -msgstr "" +msgstr "Thêm hạng mục" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:230 msgid "Line item added" -msgstr "" +msgstr "Đã thêm hạng mục" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:239 msgid "Add line item" -msgstr "" +msgstr "Thêm hạng mục" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:245 msgid "Receive items" -msgstr "" +msgstr "Nhận hàng hóa" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" -msgstr "" +msgstr "Nhà cung cấp" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:64 msgid "Supplier Reference" -msgstr "" +msgstr "Tham chiếu nhà cung cấp" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" -msgstr "" +msgstr "Nhà sản xuất" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" -msgstr "" +msgstr "MPN" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" -msgstr "" +msgstr "Còn hàng" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" -msgstr "" +msgstr "Đóng gói" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" -msgstr "" +msgstr "Đơn vị cơ sở" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" -msgstr "" +msgstr "Sẵn sàng" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" -msgstr "" +msgstr "Đã cập nhật" + +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 +msgid "Add Supplier Part" +msgstr "Thêm sản phẩm nhà cung cấp" #: src/components/tables/purchasing/SupplierPartTable.tsx:166 -msgid "Add Supplier Part" -msgstr "" - -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 msgid "Supplier part created" -msgstr "" +msgstr "Đã tạo sản phẩm nhà cung cấp" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" -msgstr "" - -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 -msgid "Edit Supplier Part" -msgstr "" +msgstr "Thêm sản phẩm nhà cung cấp" #: src/components/tables/purchasing/SupplierPartTable.tsx:196 -msgid "Supplier part updated" -msgstr "" +msgid "Edit Supplier Part" +msgstr "Sửa sản phẩm nhà cung cấp" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 +msgid "Supplier part updated" +msgstr "Cập nhật sản phẩm nhà cung cấp" + +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,125 +2217,125 @@ msgstr "Diện mạo" msgid "Show Boxes" msgstr "Hiển thị hộp" -#: src/contexts/LanguageContext.tsx:13 -msgid "Bulgarian" -msgstr "" - #: src/contexts/LanguageContext.tsx:14 -msgid "Czech" -msgstr "" +msgid "Bulgarian" +msgstr "Bulgarian" #: src/contexts/LanguageContext.tsx:15 -msgid "Danish" -msgstr "" +msgid "Czech" +msgstr "Czech" #: src/contexts/LanguageContext.tsx:16 -msgid "German" -msgstr "" +msgid "Danish" +msgstr "Danish" #: src/contexts/LanguageContext.tsx:17 -msgid "Greek" -msgstr "" +msgid "German" +msgstr "German" #: src/contexts/LanguageContext.tsx:18 -msgid "English" -msgstr "" +msgid "Greek" +msgstr "Greek" #: src/contexts/LanguageContext.tsx:19 -msgid "Spanish" -msgstr "" +msgid "English" +msgstr "English" #: src/contexts/LanguageContext.tsx:20 -msgid "Spanish (Mexican)" -msgstr "" +msgid "Spanish" +msgstr "Spanish" #: src/contexts/LanguageContext.tsx:21 -msgid "Farsi / Persian" -msgstr "" +msgid "Spanish (Mexican)" +msgstr "Spanish (Mexican)" #: src/contexts/LanguageContext.tsx:22 -msgid "Finnish" -msgstr "" +msgid "Farsi / Persian" +msgstr "Farsi / Persian" #: src/contexts/LanguageContext.tsx:23 -msgid "French" -msgstr "" +msgid "Finnish" +msgstr "Finnish" #: src/contexts/LanguageContext.tsx:24 -msgid "Hebrew" -msgstr "" +msgid "French" +msgstr "French" #: src/contexts/LanguageContext.tsx:25 -msgid "Hindi" -msgstr "" +msgid "Hebrew" +msgstr "Hebrew" #: src/contexts/LanguageContext.tsx:26 -msgid "Hungarian" -msgstr "" +msgid "Hindi" +msgstr "Hindi" #: src/contexts/LanguageContext.tsx:27 -msgid "Italian" -msgstr "" +msgid "Hungarian" +msgstr "Hungarian" #: src/contexts/LanguageContext.tsx:28 -msgid "Japanese" -msgstr "" +msgid "Italian" +msgstr "Italian" #: src/contexts/LanguageContext.tsx:29 -msgid "Korean" -msgstr "" +msgid "Japanese" +msgstr "Japanese" #: src/contexts/LanguageContext.tsx:30 -msgid "Dutch" -msgstr "" +msgid "Korean" +msgstr "Korean" #: src/contexts/LanguageContext.tsx:31 -msgid "Norwegian" -msgstr "" +msgid "Dutch" +msgstr "Dutch" #: src/contexts/LanguageContext.tsx:32 -msgid "Polish" -msgstr "" +msgid "Norwegian" +msgstr "Norwegian" #: src/contexts/LanguageContext.tsx:33 -msgid "Portuguese" -msgstr "" +msgid "Polish" +msgstr "Polish" #: src/contexts/LanguageContext.tsx:34 -msgid "Portuguese (Brazilian)" -msgstr "" +msgid "Portuguese" +msgstr "Portuguese" #: src/contexts/LanguageContext.tsx:35 -msgid "Russian" -msgstr "" +msgid "Portuguese (Brazilian)" +msgstr "Portuguese (Brazilian)" #: src/contexts/LanguageContext.tsx:36 -msgid "Slovenian" -msgstr "" +msgid "Russian" +msgstr "Russian" #: src/contexts/LanguageContext.tsx:37 -msgid "Swedish" -msgstr "" +msgid "Slovenian" +msgstr "Slovenian" #: src/contexts/LanguageContext.tsx:38 -msgid "Thai" -msgstr "" +msgid "Swedish" +msgstr "Swedish" #: src/contexts/LanguageContext.tsx:39 -msgid "Turkish" -msgstr "" +msgid "Thai" +msgstr "Thai" #: src/contexts/LanguageContext.tsx:40 -msgid "Vietnamese" -msgstr "" +msgid "Turkish" +msgstr "Turkish" #: src/contexts/LanguageContext.tsx:41 -msgid "Chinese (Simplified)" -msgstr "" +msgid "Vietnamese" +msgstr "Tiếng Việt" #: src/contexts/LanguageContext.tsx:42 +msgid "Chinese (Simplified)" +msgstr "Chinese (Simplified)" + +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" -msgstr "" +msgstr "Chinese (Traditional)" #: src/defaults/dashboardItems.tsx:15 msgid "Subscribed Parts" @@ -2427,7 +2436,7 @@ msgstr "Bảng điều khiển" #: src/pages/purchasing/PurchaseOrderDetail.tsx:134 #: src/pages/purchasing/PurchasingIndex.tsx:53 msgid "Purchasing" -msgstr "" +msgstr "Mua sắm" #: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:53 @@ -2436,11 +2445,11 @@ msgstr "" #: src/pages/sales/SalesIndex.tsx:45 #: src/pages/sales/SalesOrderDetail.tsx:99 msgid "Sales" -msgstr "" +msgstr "Bán hàng" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "Sân chơi" @@ -2479,7 +2488,7 @@ msgstr "Câu hỏi thường gặp" #: src/defaults/links.tsx:76 #: src/defaults/links.tsx:95 msgid "System Information" -msgstr "" +msgstr "Thông tin hệ thống" #: src/defaults/links.tsx:76 #~ msgid "Instance" @@ -2492,7 +2501,7 @@ msgstr "" #: src/defaults/links.tsx:85 #: src/defaults/links.tsx:101 msgid "About InvenTree" -msgstr "" +msgstr "Giới thiệu" #: src/defaults/links.tsx:96 msgid "About this Inventree instance" @@ -2630,61 +2639,61 @@ msgstr "Đã xóa tệp đính kèm" msgid "Are you sure you want to delete this attachment?" msgstr "Bạn có chắc chắn muốn xóa tập tin đính kèm này?" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" -msgstr "" +msgstr "Sửa doanh nghiệp" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" -msgstr "" +msgstr "Đã cập nhật doanh nghiệp" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "Tạo phụ kiện" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "Phụ kiện đã tạo" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "Sửa phụ kiện" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "Phụ kiện đã cập nhật" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "Danh mục phụ kiện cha" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "Thêm số lượng đã có theo gói thay vì các mục đơn lẻ" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "Nhập số lượng khởi đầu cho kho hàng này" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "Số sê-ri" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "Tạo hàng trong kho" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "Sửa hàng trong kho" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" -msgstr "" +msgstr "Kho hàng đã được cập nhật" #: src/functions/auth.tsx:34 msgid "Error fetching token from server." @@ -2719,25 +2728,19 @@ msgstr "Đã đăng nhập" msgid "Found an existing login - using it to log you in." msgstr "Tìm thấy một tài khoản đã tồn tại - hãy sử dụng nó để đăng nhập." -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "Lỗi form" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "Phương thức biểu mẫu chưa được cung cấp" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "Phản hồi không chứa dữ liệu chức năng" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "Mẫu không hợp lệ" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "tham số phương thức không được cung cấp" @@ -2831,7 +2834,7 @@ msgstr "Trang này đã được thay thế cho trang khởi động cũ với t msgid "Welcome to your Dashboard{0}" msgstr "Chào mừng bạn đến với bảng điều khiển của bạn" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Trang này là trình diễn tính năng dự kiến cho nền tảng UI." @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "Chức năng cho {0}" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "Đếm" @@ -3087,7 +3090,7 @@ msgstr "Thêm mục giả lập" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:32 msgid "Account Details" -msgstr "" +msgstr "Thông tin tài khoản" #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:58 msgid "First name: {0}" @@ -3101,86 +3104,86 @@ msgstr "Họ - {0}" msgid "Use pseudo language" msgstr "Sử dụng ngôn ngữ pseudo" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" -msgstr "" +msgstr "Tài khoản đăng nhập một lần" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" -msgstr "" +msgstr "Không kích hoạt" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" -msgstr "" +msgstr "Máy chủ này chưa bật chức năng đăng nhập một lần" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" -msgstr "" +msgstr "Đa nhân tố" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" -msgstr "" +msgstr "Chưa cấu hình xác thực đa nhân tố cho tài khoản của bạn" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Địa chỉ email sau đã được liên kết với tài khoản của bạn:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" -msgstr "" +msgstr "Chính" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" -msgstr "" +msgstr "Đã xác minh" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" -msgstr "" - -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 -msgid "Add Email Address" -msgstr "" +msgstr "Chưa xác minh" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +msgid "Add Email Address" +msgstr "Thêm địa chỉ email" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" -msgstr "" +msgstr "Email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" -msgstr "" +msgstr "Địa chỉ Email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "Thiết lập phần bổ sung" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "Đăng nhập" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "Mã vạch" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "Đơn vị vật lí" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "Giá bán" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "Nhãn" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "Báo cáo" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "Tham số phụ kiện" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "Kiểm kê" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "Kiểm kê" msgid "Build Orders" msgstr "Đơn đặt bản dựng" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,41 +3622,41 @@ msgstr "Mục con" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" -msgstr "" +msgid "Count stock" +msgstr "Đếm hàng" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" +msgstr "Thêm" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" -msgstr "" +msgid "Add stock" +msgstr "Thêm hàng" #: src/pages/stock/StockDetail.tsx:179 -msgid "Transfer stock" -msgstr "" +msgid "Remove stock" +msgstr "Xóa hàng" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "Chuyển" + +#: src/pages/stock/StockDetail.tsx:184 +msgid "Transfer stock" +msgstr "Chuyển giao hàng" + +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" -msgstr "" +msgstr "Nhân bản mặt hàng" #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" diff --git a/src/frontend/src/locales/zh-hans/messages.po b/src/frontend/src/locales/zh-hans/messages.po index 95dc987b24..303aa21f0f 100644 --- a/src/frontend/src/locales/zh-hans/messages.po +++ b/src/frontend/src/locales/zh-hans/messages.po @@ -17,23 +17,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -99,7 +99,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -177,7 +177,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -188,19 +188,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -209,59 +209,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -551,7 +552,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -599,7 +600,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -617,7 +618,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -626,19 +627,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -671,7 +672,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -681,7 +682,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -697,7 +698,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -719,7 +720,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -770,7 +771,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -780,7 +781,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -802,7 +803,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -881,21 +882,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1019,6 +1020,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1165,7 +1174,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1422,7 +1431,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1685,8 +1694,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1735,7 +1744,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1744,64 +1753,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2172,123 +2181,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2396,7 +2405,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2522,59 +2531,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2607,25 +2616,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2715,7 +2718,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2752,7 +2755,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -2861,86 +2864,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3012,46 +3015,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3059,7 +3062,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3363,39 +3366,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/zh-hant/messages.po b/src/frontend/src/locales/zh-hant/messages.po index e46536452a..496e4c8951 100644 --- a/src/frontend/src/locales/zh-hant/messages.po +++ b/src/frontend/src/locales/zh-hant/messages.po @@ -17,23 +17,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -99,7 +99,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -177,7 +177,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -188,19 +188,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -209,59 +209,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -551,7 +552,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -599,7 +600,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -617,7 +618,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -626,19 +627,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -671,7 +672,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -681,7 +682,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -697,7 +698,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -719,7 +720,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -770,7 +771,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -780,7 +781,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -802,7 +803,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -881,21 +882,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1019,6 +1020,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1165,7 +1174,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1422,7 +1431,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1685,8 +1694,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1735,7 +1744,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1744,64 +1753,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2172,123 +2181,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2396,7 +2405,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2522,59 +2531,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2607,25 +2616,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2715,7 +2718,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2752,7 +2755,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -2861,86 +2864,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3012,46 +3015,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3059,7 +3062,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3363,39 +3366,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/locales/zh/messages.po b/src/frontend/src/locales/zh/messages.po index ccd41b62a2..61bdc9075b 100644 --- a/src/frontend/src/locales/zh/messages.po +++ b/src/frontend/src/locales/zh/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-14 22:29\n" +"PO-Revision-Date: 2023-11-21 00:07\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -22,23 +22,23 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/forms/ApiForm.tsx:193 +#: src/components/forms/ApiForm.tsx:127 +#: src/functions/forms.tsx:48 +#: src/functions/forms.tsx:57 +#: src/functions/forms.tsx:260 +msgid "Form Error" +msgstr "" + +#: src/components/forms/ApiForm.tsx:291 #: src/components/widgets/MarkdownEditor.tsx:146 msgid "Success" msgstr "" -#: src/components/forms/ApiForm.tsx:267 +#: src/components/forms/ApiForm.tsx:363 msgid "Form Errors Exist" msgstr "" -#: src/components/forms/ApiForm.tsx:304 -#: src/components/tables/FilterSelectModal.tsx:166 -#: src/components/tables/plugin/PluginListTable.tsx:132 -#: src/contexts/ThemeContext.tsx:64 -msgid "Cancel" -msgstr "" - -#: src/components/forms/ApiForm.tsx:313 +#: src/components/forms/ApiForm.tsx:406 #: src/contexts/ThemeContext.tsx:64 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:51 msgid "Submit" @@ -119,7 +119,7 @@ msgstr "" #: src/components/tables/settings/UserDrawer.tsx:163 #: src/components/tables/settings/UserTable.tsx:51 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:48 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 msgid "Email" msgstr "" @@ -201,7 +201,7 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" -#: src/components/forms/fields/ApiFormField.tsx:326 +#: src/components/forms/fields/ApiFormField.tsx:279 #: src/components/nav/SearchDrawer.tsx:412 #: src/components/tables/InvenTreeTable.tsx:392 #: src/components/tables/plugin/PluginListTable.tsx:163 @@ -212,19 +212,19 @@ msgstr "" msgid "Error" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:214 +#: src/components/forms/fields/RelatedModelField.tsx:199 #: src/pages/Index/Settings/UserSettings.tsx:64 msgid "Search" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:215 +#: src/components/forms/fields/RelatedModelField.tsx:200 #: src/components/modals/AboutInvenTreeModal.tsx:67 #: src/components/widgets/WidgetLayout.tsx:134 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:298 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:301 msgid "Loading" msgstr "" -#: src/components/forms/fields/RelatedModelField.tsx:217 +#: src/components/forms/fields/RelatedModelField.tsx:202 msgid "No results found" msgstr "" @@ -233,59 +233,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/items/ActionDropdown.tsx:85 +#: src/components/items/ActionDropdown.tsx:84 #: src/pages/build/BuildDetail.tsx:206 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:102 +#: src/components/items/ActionDropdown.tsx:101 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:103 +#: src/components/items/ActionDropdown.tsx:102 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:119 +#: src/components/items/ActionDropdown.tsx:118 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:120 +#: src/components/items/ActionDropdown.tsx:119 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:136 +#: src/components/items/ActionDropdown.tsx:135 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:137 +#: src/components/items/ActionDropdown.tsx:136 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:154 #: src/components/tables/RowActions.tsx:44 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:174 +#: src/components/items/ActionDropdown.tsx:173 #: src/components/tables/RowActions.tsx:61 -#: src/functions/forms.tsx:180 +#: src/functions/forms.tsx:300 +#: src/hooks/UseForm.tsx:109 #: src/pages/Index/Scan.tsx:332 #: src/pages/Notifications.tsx:79 msgid "Delete" msgstr "" -#: src/components/items/ActionDropdown.tsx:175 +#: src/components/items/ActionDropdown.tsx:174 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:193 +#: src/components/items/ActionDropdown.tsx:192 #: src/components/tables/RowActions.tsx:27 -#: src/pages/stock/StockDetail.tsx:190 +#: src/pages/stock/StockDetail.tsx:195 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:194 +#: src/components/items/ActionDropdown.tsx:193 msgid "Duplicate item" msgstr "" @@ -575,7 +576,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:59 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:295 +#: src/pages/Index/Settings/SystemSettings.tsx:296 msgid "System Settings" msgstr "" @@ -631,7 +632,7 @@ msgid "About" msgstr "" #: src/components/nav/NotificationDrawer.tsx:70 -#: src/pages/Index/Settings/SystemSettings.tsx:123 +#: src/pages/Index/Settings/SystemSettings.tsx:124 #: src/pages/Index/Settings/UserSettings.tsx:94 #: src/pages/Notifications.tsx:28 #: src/pages/Notifications.tsx:100 @@ -649,7 +650,7 @@ msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 #: src/components/render/ModelType.tsx:49 -#: src/pages/Index/Settings/SystemSettings.tsx:187 +#: src/pages/Index/Settings/SystemSettings.tsx:188 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" msgstr "" @@ -658,19 +659,19 @@ msgstr "" msgid "results" msgstr "" -#: src/components/nav/SearchDrawer.tsx:338 +#: src/components/nav/SearchDrawer.tsx:337 msgid "Enter search text" msgstr "" -#: src/components/nav/SearchDrawer.tsx:365 +#: src/components/nav/SearchDrawer.tsx:364 msgid "Search Options" msgstr "" -#: src/components/nav/SearchDrawer.tsx:368 +#: src/components/nav/SearchDrawer.tsx:367 msgid "Regex search" msgstr "" -#: src/components/nav/SearchDrawer.tsx:378 +#: src/components/nav/SearchDrawer.tsx:377 msgid "Whole word search" msgstr "" @@ -703,7 +704,7 @@ msgstr "" #: src/components/tables/part/PartTable.tsx:26 #: src/components/tables/part/RelatedPartTable.tsx:41 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 -#: src/components/tables/purchasing/SupplierPartTable.tsx:38 +#: src/components/tables/purchasing/SupplierPartTable.tsx:35 #: src/components/tables/stock/StockItemTable.tsx:27 #: src/pages/part/PartDetail.tsx:328 msgid "Part" @@ -713,7 +714,7 @@ msgstr "" #: src/components/tables/part/PartCategoryTable.tsx:36 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:192 +#: src/pages/Index/Settings/SystemSettings.tsx:193 #: src/pages/part/CategoryDetail.tsx:46 #: src/pages/part/CategoryDetail.tsx:82 #: src/pages/part/PartDetail.tsx:243 @@ -729,7 +730,7 @@ msgid "Part Parameter Templates" msgstr "" #: src/components/render/ModelType.tsx:34 -#: src/components/tables/purchasing/SupplierPartTable.tsx:66 +#: src/components/tables/purchasing/SupplierPartTable.tsx:63 msgid "Supplier Part" msgstr "" @@ -751,7 +752,7 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:55 -#: src/pages/stock/StockDetail.tsx:219 +#: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" @@ -802,7 +803,7 @@ msgid "Project Code" msgstr "" #: src/components/render/ModelType.tsx:89 -#: src/pages/Index/Settings/SystemSettings.tsx:105 +#: src/pages/Index/Settings/SystemSettings.tsx:106 msgid "Project Codes" msgstr "" @@ -812,7 +813,7 @@ msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:96 -#: src/pages/Index/Settings/SystemSettings.tsx:262 +#: src/pages/Index/Settings/SystemSettings.tsx:263 #: src/pages/company/CompanyDetail.tsx:88 #: src/pages/part/PartDetail.tsx:175 #: src/pages/purchasing/PurchasingIndex.tsx:20 @@ -834,7 +835,7 @@ msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:108 -#: src/pages/Index/Settings/SystemSettings.tsx:275 +#: src/pages/Index/Settings/SystemSettings.tsx:276 #: src/pages/company/CompanyDetail.tsx:106 #: src/pages/part/PartDetail.tsx:181 #: src/pages/sales/SalesIndex.tsx:21 @@ -913,21 +914,21 @@ msgstr "" msgid "Quantity" msgstr "" -#: src/components/settings/SettingItem.tsx:29 -#: src/components/settings/SettingItem.tsx:70 +#: src/components/settings/SettingItem.tsx:32 +#: src/components/settings/SettingItem.tsx:74 msgid "Setting updated" msgstr "" -#: src/components/settings/SettingItem.tsx:30 -#: src/components/settings/SettingItem.tsx:71 +#: src/components/settings/SettingItem.tsx:33 +#: src/components/settings/SettingItem.tsx:75 msgid "{0} updated successfully" msgstr "" -#: src/components/settings/SettingItem.tsx:38 +#: src/components/settings/SettingItem.tsx:41 msgid "Error editing setting" msgstr "" -#: src/components/settings/SettingItem.tsx:57 +#: src/components/settings/SettingItem.tsx:61 msgid "Edit Setting" msgstr "" @@ -1051,6 +1052,14 @@ msgstr "" msgid "Select filter value" msgstr "" +#: src/components/tables/FilterSelectModal.tsx:166 +#: src/components/tables/plugin/PluginListTable.tsx:132 +#: src/contexts/ThemeContext.tsx:64 +#: src/functions/forms.tsx:201 +#: src/hooks/UseForm.tsx:36 +msgid "Cancel" +msgstr "" + #: src/components/tables/FilterSelectModal.tsx:172 msgid "Add Filter" msgstr "" @@ -1197,7 +1206,7 @@ msgstr "" #: src/components/tables/bom/BomTable.tsx:233 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:215 -#: src/components/tables/purchasing/SupplierPartTable.tsx:133 +#: src/components/tables/purchasing/SupplierPartTable.tsx:130 #: src/pages/build/BuildDetail.tsx:169 #: src/pages/company/CompanyDetail.tsx:152 #: src/pages/part/PartDetail.tsx:228 @@ -1454,7 +1463,7 @@ msgstr "" #: src/components/tables/stock/StockItemTable.tsx:51 #: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:229 +#: src/pages/Index/Settings/SystemSettings.tsx:230 #: src/pages/part/PartDetail.tsx:98 #: src/pages/stock/LocationDetail.tsx:63 #: src/pages/stock/StockDetail.tsx:135 @@ -1721,8 +1730,8 @@ msgstr "" #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:137 #: src/components/tables/purchasing/PurchaseOrderLineItemTable.tsx:173 -#: src/components/tables/purchasing/SupplierPartTable.tsx:105 -#: src/components/tables/purchasing/SupplierPartTable.tsx:125 +#: src/components/tables/purchasing/SupplierPartTable.tsx:102 +#: src/components/tables/purchasing/SupplierPartTable.tsx:122 msgid "Pack Quantity" msgstr "" @@ -1771,7 +1780,7 @@ msgid "Receive items" msgstr "" #: src/components/tables/purchasing/PurchaseOrderTable.tsx:48 -#: src/components/tables/purchasing/SupplierPartTable.tsx:51 +#: src/components/tables/purchasing/SupplierPartTable.tsx:48 #: src/pages/company/SupplierDetail.tsx:8 msgid "Supplier" msgstr "" @@ -1780,64 +1789,64 @@ msgstr "" msgid "Supplier Reference" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:74 +#: src/components/tables/purchasing/SupplierPartTable.tsx:71 #: src/pages/company/ManufacturerDetail.tsx:8 msgid "Manufacturer" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:90 +#: src/components/tables/purchasing/SupplierPartTable.tsx:87 msgid "MPN" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:95 +#: src/components/tables/purchasing/SupplierPartTable.tsx:92 msgid "In Stock" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:100 +#: src/components/tables/purchasing/SupplierPartTable.tsx:97 msgid "Packaging" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:116 +#: src/components/tables/purchasing/SupplierPartTable.tsx:113 msgid "Base units" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:138 +#: src/components/tables/purchasing/SupplierPartTable.tsx:135 msgid "Availability" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:147 +#: src/components/tables/purchasing/SupplierPartTable.tsx:144 msgid "Updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:166 +#: src/components/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:169 +#: src/components/tables/purchasing/SupplierPartTable.tsx:166 msgid "Supplier part created" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:178 +#: src/components/tables/purchasing/SupplierPartTable.tsx:175 msgid "Add supplier part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:193 +#: src/components/tables/purchasing/SupplierPartTable.tsx:196 msgid "Edit Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:196 +#: src/components/tables/purchasing/SupplierPartTable.tsx:199 msgid "Supplier part updated" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:207 +#: src/components/tables/purchasing/SupplierPartTable.tsx:210 msgid "Delete Supplier Part" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:208 +#: src/components/tables/purchasing/SupplierPartTable.tsx:211 msgid "Supplier part deleted" msgstr "" -#: src/components/tables/purchasing/SupplierPartTable.tsx:211 +#: src/components/tables/purchasing/SupplierPartTable.tsx:214 msgid "Are you sure you want to remove this supplier part?" msgstr "" @@ -2208,123 +2217,123 @@ msgstr "" msgid "Show Boxes" msgstr "" -#: src/contexts/LanguageContext.tsx:13 +#: src/contexts/LanguageContext.tsx:14 msgid "Bulgarian" msgstr "" -#: src/contexts/LanguageContext.tsx:14 +#: src/contexts/LanguageContext.tsx:15 msgid "Czech" msgstr "" -#: src/contexts/LanguageContext.tsx:15 +#: src/contexts/LanguageContext.tsx:16 msgid "Danish" msgstr "" -#: src/contexts/LanguageContext.tsx:16 +#: src/contexts/LanguageContext.tsx:17 msgid "German" msgstr "" -#: src/contexts/LanguageContext.tsx:17 +#: src/contexts/LanguageContext.tsx:18 msgid "Greek" msgstr "" -#: src/contexts/LanguageContext.tsx:18 +#: src/contexts/LanguageContext.tsx:19 msgid "English" msgstr "" -#: src/contexts/LanguageContext.tsx:19 +#: src/contexts/LanguageContext.tsx:20 msgid "Spanish" msgstr "" -#: src/contexts/LanguageContext.tsx:20 +#: src/contexts/LanguageContext.tsx:21 msgid "Spanish (Mexican)" msgstr "" -#: src/contexts/LanguageContext.tsx:21 +#: src/contexts/LanguageContext.tsx:22 msgid "Farsi / Persian" msgstr "" -#: src/contexts/LanguageContext.tsx:22 +#: src/contexts/LanguageContext.tsx:23 msgid "Finnish" msgstr "" -#: src/contexts/LanguageContext.tsx:23 +#: src/contexts/LanguageContext.tsx:24 msgid "French" msgstr "" -#: src/contexts/LanguageContext.tsx:24 +#: src/contexts/LanguageContext.tsx:25 msgid "Hebrew" msgstr "" -#: src/contexts/LanguageContext.tsx:25 +#: src/contexts/LanguageContext.tsx:26 msgid "Hindi" msgstr "" -#: src/contexts/LanguageContext.tsx:26 +#: src/contexts/LanguageContext.tsx:27 msgid "Hungarian" msgstr "" -#: src/contexts/LanguageContext.tsx:27 +#: src/contexts/LanguageContext.tsx:28 msgid "Italian" msgstr "" -#: src/contexts/LanguageContext.tsx:28 +#: src/contexts/LanguageContext.tsx:29 msgid "Japanese" msgstr "" -#: src/contexts/LanguageContext.tsx:29 +#: src/contexts/LanguageContext.tsx:30 msgid "Korean" msgstr "" -#: src/contexts/LanguageContext.tsx:30 +#: src/contexts/LanguageContext.tsx:31 msgid "Dutch" msgstr "" -#: src/contexts/LanguageContext.tsx:31 +#: src/contexts/LanguageContext.tsx:32 msgid "Norwegian" msgstr "" -#: src/contexts/LanguageContext.tsx:32 +#: src/contexts/LanguageContext.tsx:33 msgid "Polish" msgstr "" -#: src/contexts/LanguageContext.tsx:33 +#: src/contexts/LanguageContext.tsx:34 msgid "Portuguese" msgstr "" -#: src/contexts/LanguageContext.tsx:34 +#: src/contexts/LanguageContext.tsx:35 msgid "Portuguese (Brazilian)" msgstr "" -#: src/contexts/LanguageContext.tsx:35 +#: src/contexts/LanguageContext.tsx:36 msgid "Russian" msgstr "" -#: src/contexts/LanguageContext.tsx:36 +#: src/contexts/LanguageContext.tsx:37 msgid "Slovenian" msgstr "" -#: src/contexts/LanguageContext.tsx:37 +#: src/contexts/LanguageContext.tsx:38 msgid "Swedish" msgstr "" -#: src/contexts/LanguageContext.tsx:38 +#: src/contexts/LanguageContext.tsx:39 msgid "Thai" msgstr "" -#: src/contexts/LanguageContext.tsx:39 +#: src/contexts/LanguageContext.tsx:40 msgid "Turkish" msgstr "" -#: src/contexts/LanguageContext.tsx:40 +#: src/contexts/LanguageContext.tsx:41 msgid "Vietnamese" msgstr "" -#: src/contexts/LanguageContext.tsx:41 +#: src/contexts/LanguageContext.tsx:42 msgid "Chinese (Simplified)" msgstr "" -#: src/contexts/LanguageContext.tsx:42 +#: src/contexts/LanguageContext.tsx:43 msgid "Chinese (Traditional)" msgstr "" @@ -2440,7 +2449,7 @@ msgstr "" #: src/defaults/links.tsx:34 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:104 +#: src/pages/Index/Playground.tsx:171 msgid "Playground" msgstr "" @@ -2630,59 +2639,59 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: src/forms/CompanyForms.tsx:99 +#: src/forms/CompanyForms.tsx:120 msgid "Edit Company" msgstr "" -#: src/forms/CompanyForms.tsx:103 +#: src/forms/CompanyForms.tsx:124 msgid "Company updated" msgstr "" -#: src/forms/PartForms.tsx:77 +#: src/forms/PartForms.tsx:106 msgid "Create Part" msgstr "" -#: src/forms/PartForms.tsx:79 +#: src/forms/PartForms.tsx:108 msgid "Part created" msgstr "" -#: src/forms/PartForms.tsx:96 +#: src/forms/PartForms.tsx:125 msgid "Edit Part" msgstr "" -#: src/forms/PartForms.tsx:100 +#: src/forms/PartForms.tsx:129 msgid "Part updated" msgstr "" -#: src/forms/PartForms.tsx:111 +#: src/forms/PartForms.tsx:140 msgid "Parent part category" msgstr "" -#: src/forms/StockForms.tsx:48 +#: src/forms/StockForms.tsx:44 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: src/forms/StockForms.tsx:59 +#: src/forms/StockForms.tsx:55 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:64 +#: src/forms/StockForms.tsx:60 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:65 +#: src/forms/StockForms.tsx:61 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: src/forms/StockForms.tsx:111 +#: src/forms/StockForms.tsx:110 msgid "Create Stock Item" msgstr "" -#: src/forms/StockForms.tsx:130 +#: src/forms/StockForms.tsx:131 msgid "Edit Stock Item" msgstr "" -#: src/forms/StockForms.tsx:131 +#: src/forms/StockForms.tsx:132 msgid "Stock item updated" msgstr "" @@ -2719,25 +2728,19 @@ msgstr "" msgid "Found an existing login - using it to log you in." msgstr "" -#: src/functions/forms.tsx:40 #: src/functions/forms.tsx:49 -#: src/functions/forms.tsx:140 -msgid "Form Error" -msgstr "" - -#: src/functions/forms.tsx:41 msgid "Form method not provided" msgstr "" -#: src/functions/forms.tsx:50 +#: src/functions/forms.tsx:58 msgid "Response did not contain action data" msgstr "" -#: src/functions/forms.tsx:92 +#: src/functions/forms.tsx:187 msgid "Invalid Form" msgstr "" -#: src/functions/forms.tsx:93 +#: src/functions/forms.tsx:188 msgid "method parameter not supplied" msgstr "" @@ -2831,7 +2834,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:109 +#: src/pages/Index/Playground.tsx:176 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -2992,7 +2995,7 @@ msgid "Actions for {0}" msgstr "" #: src/pages/Index/Scan.tsx:262 -#: src/pages/stock/StockDetail.tsx:163 +#: src/pages/stock/StockDetail.tsx:168 msgid "Count" msgstr "" @@ -3101,86 +3104,86 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:52 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:59 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:77 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:66 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:128 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:131 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:140 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:143 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:145 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:148 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:152 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:162 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:165 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:168 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:179 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:288 -#: src/pages/stock/StockDetail.tsx:173 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:185 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:291 +#: src/pages/stock/StockDetail.tsx:178 msgid "Remove" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:188 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:191 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:252 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:255 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:262 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:265 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:268 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:275 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:278 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" @@ -3252,46 +3255,46 @@ msgstr "" msgid "Plugin Settings" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:69 +#: src/pages/Index/Settings/SystemSettings.tsx:70 msgid "Login" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:91 +#: src/pages/Index/Settings/SystemSettings.tsx:92 msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:117 +#: src/pages/Index/Settings/SystemSettings.tsx:118 msgid "Physical Units" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:128 +#: src/pages/Index/Settings/SystemSettings.tsx:129 #: src/pages/part/PartDetail.tsx:151 msgid "Pricing" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:157 +#: src/pages/Index/Settings/SystemSettings.tsx:158 msgid "Exchange Rates" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:165 +#: src/pages/Index/Settings/SystemSettings.tsx:166 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:171 +#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/Index/Settings/UserSettings.tsx:99 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:223 +#: src/pages/Index/Settings/SystemSettings.tsx:224 msgid "Part Parameters" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:251 +#: src/pages/Index/Settings/SystemSettings.tsx:252 #: src/pages/part/PartDetail.tsx:199 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:256 +#: src/pages/Index/Settings/SystemSettings.tsx:257 #: src/pages/build/BuildDetail.tsx:262 #: src/pages/build/BuildIndex.tsx:36 #: src/pages/part/PartDetail.tsx:130 @@ -3299,7 +3302,7 @@ msgstr "" msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:298 +#: src/pages/Index/Settings/SystemSettings.tsx:299 msgid "Switch to User Setting" msgstr "" @@ -3619,39 +3622,39 @@ msgstr "" #~ msgid "Link custom barcode to stock item" #~ msgstr "Link custom barcode to stock item" -#: src/pages/stock/StockDetail.tsx:159 -msgid "Stock Operations" -msgstr "" - #: src/pages/stock/StockDetail.tsx:161 #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" #: src/pages/stock/StockDetail.tsx:164 -msgid "Count stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:168 -msgid "Add" +msgid "Stock Operations" msgstr "" #: src/pages/stock/StockDetail.tsx:169 -msgid "Add stock" +msgid "Count stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:173 +msgid "Add" msgstr "" #: src/pages/stock/StockDetail.tsx:174 -msgid "Remove stock" -msgstr "" - -#: src/pages/stock/StockDetail.tsx:178 -msgid "Transfer" +msgid "Add stock" msgstr "" #: src/pages/stock/StockDetail.tsx:179 +msgid "Remove stock" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:183 +msgid "Transfer" +msgstr "" + +#: src/pages/stock/StockDetail.tsx:184 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:191 +#: src/pages/stock/StockDetail.tsx:196 msgid "Duplicate stock item" msgstr "" diff --git a/src/frontend/src/pages/Index/Playground.tsx b/src/frontend/src/pages/Index/Playground.tsx index 7fbace4e08..beb9b54e7a 100644 --- a/src/frontend/src/pages/Index/Playground.tsx +++ b/src/frontend/src/pages/Index/Playground.tsx @@ -1,10 +1,10 @@ import { Trans } from '@lingui/macro'; -import { Button, TextInput } from '@mantine/core'; +import { Button, Card, Stack, TextInput } from '@mantine/core'; import { Group, Text } from '@mantine/core'; import { Accordion } from '@mantine/core'; -import { ReactNode, useState } from 'react'; +import { ReactNode, useMemo, useState } from 'react'; -import { ApiFormProps } from '../../components/forms/ApiForm'; +import { OptionsApiForm } from '../../components/forms/ApiForm'; import { PlaceholderPill } from '../../components/items/Placeholder'; import { StylishText } from '../../components/items/StylishText'; import { StatusRenderer } from '../../components/render/StatusRenderer'; @@ -13,23 +13,28 @@ import { ModelType } from '../../enums/ModelType'; import { createPart, editPart, - partCategoryFields + partCategoryFields, + partFields } from '../../forms/PartForms'; -import { createStockItem } from '../../forms/StockForms'; -import { openCreateApiForm, openEditApiForm } from '../../functions/forms'; +import { useCreateStockItem } from '../../forms/StockForms'; +import { + OpenApiFormProps, + openCreateApiForm, + openEditApiForm +} from '../../functions/forms'; +import { useCreateApiFormModal } from '../../hooks/UseForm'; // Generate some example forms using the modal API forms interface +const fields = partCategoryFields({}); function ApiFormsPlayground() { - let fields = partCategoryFields({}); - - const editCategoryForm: ApiFormProps = { + const editCategoryForm: OpenApiFormProps = { url: ApiPaths.category_list, pk: 2, title: 'Edit Category', fields: fields }; - const createAttachmentForm: ApiFormProps = { + const createAttachmentForm: OpenApiFormProps = { url: ApiPaths.part_attachment_list, title: 'Create Attachment', successMessage: 'Attachment uploaded', @@ -41,21 +46,83 @@ function ApiFormsPlayground() { comment: {} } }; + const [active, setActive] = useState(true); + const [name, setName] = useState('Hello'); + + const partFieldsState: any = useMemo(() => { + const fields = partFields({}); + fields.name = { + ...fields.name, + value: name, + onValueChange: setName + }; + fields.active = { + ...fields.active, + value: active, + onValueChange: setActive + }; + fields.responsible = { + ...fields.responsible, + disabled: !active + }; + return fields; + }, [name, active]); + + const { modal: createPartModal, open: openCreatePart } = + useCreateApiFormModal({ + url: ApiPaths.part_list, + title: 'Create part', + fields: partFieldsState, + preFormContent: ( + + ) + }); + + const { modal: createStockItemModal, open: openCreateStockItem } = + useCreateStockItem(); return ( - <> + - + + + {createStockItemModal} + + + + + {createPartModal} - + + + + ); } diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx index d3f39749cd..8a06857323 100644 --- a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx +++ b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx @@ -21,6 +21,7 @@ import { api, queryClient } from '../../../../App'; import { PlaceholderPill } from '../../../../components/items/Placeholder'; import { ApiPaths } from '../../../../enums/ApiEndpoints'; import { apiUrl } from '../../../../states/ApiState'; +import { useUserState } from '../../../../states/UserState'; export function SecurityContent() { const [isSsoEnabled, setIsSsoEnabled] = useState(false); @@ -91,6 +92,7 @@ export function SecurityContent() { function EmailContent({}: {}) { const [value, setValue] = useState(''); const [newEmailValue, setNewEmailValue] = useState(''); + const [user] = useUserState((state) => [state.user]); const { isLoading, data, refetch } = useQuery({ queryKey: ['emails'], queryFn: () => api.get(apiUrl(ApiPaths.user_emails)).then((res) => res.data) @@ -98,7 +100,7 @@ function EmailContent({}: {}) { function runServerAction(url: ApiPaths) { api - .post(apiUrl(url).replace('$id', value), {}) + .post(apiUrl(url, undefined, { id: value }), {}) .then(() => { refetch(); }) @@ -108,7 +110,8 @@ function EmailContent({}: {}) { function addEmail() { api .post(apiUrl(ApiPaths.user_emails), { - email: newEmailValue + email: newEmailValue, + user: user?.pk }) .then(() => { refetch(); @@ -219,7 +222,7 @@ function SsoContent({ dataProvider }: { dataProvider: any | undefined }) { function removeProvider() { api - .post(apiUrl(ApiPaths.user_sso_remove).replace('$id', value)) + .post(apiUrl(ApiPaths.user_sso_remove, undefined, { id: value })) .then(() => { queryClient.removeQueries({ queryKey: ['sso-list'] diff --git a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx index b84c2a67e6..2a635affa4 100644 --- a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx @@ -49,6 +49,7 @@ export default function SystemSettings() { 'INVENTREE_INSTANCE', 'INVENTREE_INSTANCE_TITLE', 'INVENTREE_RESTRICT_ABOUT', + 'DISPLAY_FULL_NAMES', 'INVENTREE_UPDATE_CHECK_INTERVAL', 'INVENTREE_DOWNLOAD_FROM_URL', 'INVENTREE_DOWNLOAD_IMAGE_MAX_SIZE', diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index 520178dc26..3e4272fc48 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -36,7 +36,7 @@ import { StockLocationTree } from '../../components/nav/StockLocationTree'; import { AttachmentTable } from '../../components/tables/general/AttachmentTable'; import { NotesEditor } from '../../components/widgets/MarkdownEditor'; import { ApiPaths } from '../../enums/ApiEndpoints'; -import { editStockItem } from '../../forms/StockForms'; +import { useEditStockItem } from '../../forms/StockForms'; import { useInstance } from '../../hooks/UseInstance'; import { apiUrl } from '../../states/ApiState'; import { useUserState } from '../../states/UserState'; @@ -141,6 +141,11 @@ export default function StockDetail() { [stockitem] ); + const editStockItem = useEditStockItem({ + item_id: stockitem.pk, + callback: () => refreshInstance() + }); + const stockActions = useMemo( () => /* TODO: Disable actions based on user permissions*/ [ { - stockitem.pk && - editStockItem({ - item_id: stockitem.pk, - callback: () => refreshInstance - }); + stockitem.pk && editStockItem.open(); } }), DeleteItemAction({}) @@ -231,6 +232,7 @@ export default function StockDetail() { actions={stockActions} /> + {editStockItem.modal} ); } diff --git a/src/frontend/src/states/ApiState.tsx b/src/frontend/src/states/ApiState.tsx index d9eb568b61..6713f9e23d 100644 --- a/src/frontend/src/states/ApiState.tsx +++ b/src/frontend/src/states/ApiState.tsx @@ -1,5 +1,5 @@ import { create } from 'zustand'; -import { persist } from 'zustand/middleware'; +import { createJSONStorage, persist } from 'zustand/middleware'; import { api } from '../App'; import { StatusCodeListInterface } from '../components/render/StatusRenderer'; @@ -15,7 +15,7 @@ interface ServerApiStateProps { server: ServerAPIProps; setServer: (newServer: ServerAPIProps) => void; fetchServerApiState: () => void; - status: StatusLookup | undefined; + status?: StatusLookup; } export const useServerApiState = create()( @@ -44,7 +44,7 @@ export const useServerApiState = create()( }), { name: 'server-api-state', - getStorage: () => sessionStorage + storage: createJSONStorage(() => sessionStorage) } ) ); @@ -85,15 +85,15 @@ export function apiEndpoint(path: ApiPaths): string { case ApiPaths.user_sso: return 'auth/social/'; case ApiPaths.user_sso_remove: - return 'auth/social/$id/disconnect/'; + return 'auth/social/:id/disconnect/'; case ApiPaths.user_emails: return 'auth/emails/'; case ApiPaths.user_email_remove: - return 'auth/emails/$id/remove/'; + return 'auth/emails/:id/remove/'; case ApiPaths.user_email_verify: - return 'auth/emails/$id/verify/'; + return 'auth/emails/:id/verify/'; case ApiPaths.user_email_primary: - return 'auth/emails/$id/primary/'; + return 'auth/emails/:id/primary/'; case ApiPaths.currency_list: return 'currency/exchange/'; case ApiPaths.currency_refresh: @@ -116,8 +116,6 @@ export function apiEndpoint(path: ApiPaths): string { return 'version/'; case ApiPaths.sso_providers: return 'auth/providers/'; - case ApiPaths.user_list: - return 'user/'; case ApiPaths.group_list: return 'user/group/'; case ApiPaths.owner_list: @@ -191,10 +189,16 @@ export function apiEndpoint(path: ApiPaths): string { } } +export type PathParams = Record; + /** * Construct an API URL with an endpoint and (optional) pk value */ -export function apiUrl(path: ApiPaths, pk?: any): string { +export function apiUrl( + path: ApiPaths, + pk?: any, + pathParams?: PathParams +): string { let _url = apiEndpoint(path); // If the URL does not start with a '/', add the API prefix @@ -206,5 +210,11 @@ export function apiUrl(path: ApiPaths, pk?: any): string { _url += `${pk}/`; } + if (_url && pathParams) { + for (const key in pathParams) { + _url = _url.replace(`:${key}`, `${pathParams[key]}`); + } + } + return _url; } diff --git a/src/frontend/src/states/SessionState.tsx b/src/frontend/src/states/SessionState.tsx index d49a223910..54f1e58b9e 100644 --- a/src/frontend/src/states/SessionState.tsx +++ b/src/frontend/src/states/SessionState.tsx @@ -1,11 +1,11 @@ import { create } from 'zustand'; -import { persist } from 'zustand/middleware'; +import { createJSONStorage, persist } from 'zustand/middleware'; import { setApiDefaults } from '../App'; interface SessionStateProps { - token: string | undefined; - setToken: (newToken: string | undefined) => void; + token?: string; + setToken: (newToken?: string) => void; } export const useSessionState = create()( @@ -19,7 +19,7 @@ export const useSessionState = create()( }), { name: 'session-state', - getStorage: () => sessionStorage + storage: createJSONStorage(() => sessionStorage) } ) ); diff --git a/src/frontend/src/states/SettingsState.tsx b/src/frontend/src/states/SettingsState.tsx index 6270446117..42da0e9f28 100644 --- a/src/frontend/src/states/SettingsState.tsx +++ b/src/frontend/src/states/SettingsState.tsx @@ -6,7 +6,7 @@ import { create } from 'zustand'; import { api } from '../App'; import { ApiPaths } from '../enums/ApiEndpoints'; import { isTrue } from '../functions/conversion'; -import { apiUrl } from './ApiState'; +import { PathParams, apiUrl } from './ApiState'; import { Setting, SettingsLookup } from './states'; export interface SettingsStateProps { @@ -14,6 +14,7 @@ export interface SettingsStateProps { lookup: SettingsLookup; fetchSettings: () => void; endpoint: ApiPaths; + pathParams?: PathParams; getSetting: (key: string, default_value?: string) => string; // Return a raw setting value isSet: (key: string, default_value?: boolean) => boolean; // Check a "boolean" setting } diff --git a/src/frontend/src/states/UserState.tsx b/src/frontend/src/states/UserState.tsx index e37f35bf36..0fdd27691a 100644 --- a/src/frontend/src/states/UserState.tsx +++ b/src/frontend/src/states/UserState.tsx @@ -42,6 +42,7 @@ export const useUserState = create((set, get) => ({ }) .then((response) => { const user: UserProps = { + pk: response.data.pk, first_name: response.data?.first_name ?? '', last_name: response.data?.last_name ?? '', email: response.data.email, diff --git a/src/frontend/src/states/states.tsx b/src/frontend/src/states/states.tsx index 51cb84c920..cb890104bd 100644 --- a/src/frontend/src/states/states.tsx +++ b/src/frontend/src/states/states.tsx @@ -9,6 +9,7 @@ export interface HostList { // Type interface fully defining the current user export interface UserProps { + pk: number; username: string; first_name: string; last_name: string; diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index 338a5c7829..3b89f1bb00 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -2528,6 +2528,11 @@ react-grid-layout@^1.4.2: react-resizable "^3.0.5" resize-observer-polyfill "^1.5.1" +react-hook-form@^7.48.2: + version "7.48.2" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.48.2.tgz#01150354d2be61412ff56a030b62a119283b9935" + integrity sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A== + react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" diff --git a/tasks.py b/tasks.py index 03f11ad24f..5627b281af 100644 --- a/tasks.py +++ b/tasks.py @@ -168,6 +168,7 @@ def install(c): # Install required Python packages with PIP c.run('pip3 install --upgrade pip') + c.run('pip3 install --upgrade setuptools') c.run('pip3 install --no-cache-dir --disable-pip-version-check -U -r requirements.txt')